我是本机反应的新手。我正在尝试使用 react-navigation 5 实现导航。我有两个屏幕主页和个人资料。这两个组件都收到了导航道具,但打字稿给了我以下错误
Binding element 'navigation' implicitly has an 'any' type.ts(7031)
Run Code Online (Sandbox Code Playgroud)
如何摆脱这个错误。
先感谢您
注意 - 我正在使用打字稿
应用程序.tsx
import 'react-native-gesture-handler';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
const Stack = createStackNavigator();
import Home from './screens/home'
const App = () => {
const ProfileScreen = ({}) => {
return <Text>This is Jane's profile</Text>;
};
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="Home"
component={Home}
/>
<Stack.Screen name="Profile" component={ProfileScreen} />
</Stack.Navigator>
</NavigationContainer>
);
};
Run Code Online (Sandbox Code Playgroud)
主页.tsx
import React from 'react';
import …Run Code Online (Sandbox Code Playgroud) 我正在使用 ionic 4 来构建一个应用程序。而我的应用程序在浏览器上运行良好,但是当我构建 android 平台时,它给了我这一行的错误
for (let [index, p] of this.cart.entries())
Run Code Online (Sandbox Code Playgroud)
我的打字稿版本是 3.7.2
错误是
类型 'IterableIterator<[number, any]>' 不是数组类型或字符串类型。使用编译器选项“--downlevelIteration”来允许迭代器迭代。
我正在使用 typescript 版本 3.7.2 来使用 crypto-js 加密数据。
算法 - sha256
但是我的代码生成了错误的散列数据。
该代码工作正常,无需使用任何键来散列数据,例如
CryptoJS.SHA256(message).toString(CryptoJS.enc.Hex)
Run Code Online (Sandbox Code Playgroud)
但是当我使用密钥时它正在做错误的散列
这是完整的代码。希望你能帮忙。先感谢您
import CryptoJS from 'crypto-js';
let order_id = 'order_EFph1itQK4z1NQ',
let payment_id = 'pay_EFph2XRs3vkaB8',
let generated_signature = CryptoJS.SHA256(order_id + "|" + payment_id, secret).toString(CryptoJS.enc.Hex);
// secret is some key
Run Code Online (Sandbox Code Playgroud)
生成签名的价值(我们的结局)
1a45e3be48f64911d372bcccd9c4dbe7dca9dab716603e4e80c2e55f701bde7a
Run Code Online (Sandbox Code Playgroud)
要比较的哈希值(由支付网关发送)
e236e8fe62c54546b85dede32c432d4c73c27157840a8ba67cfc09270b53064a
Run Code Online (Sandbox Code Playgroud)
在线网站生成的哈希值https://www.freeformatter.com/hmac-generator.html#ad-output
e236e8fe62c54546b85dede32c432d4c73c27157840a8ba67cfc09270b53064a
Run Code Online (Sandbox Code Playgroud)
网上网站生成的和支付网关发送的ieHash值是匹配的,说明我们的代码有问题。谢谢
我正在使用@ngneat/until-destroy 这个npm 包来自动取消订阅 observables。我曾经checkProperties: true自动取消订阅 observables。
但是,我不知道如何测试它。observable 是否被取消订阅?
我的问题很简单。这段代码是否有效,或者我是否必须在订阅前使用这样的管道
.pipe(untilDestroyed(this))
Run Code Online (Sandbox Code Playgroud)
先感谢您
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'app-view-all-purchase',
templateUrl: './view-all-purchase.component.html',
styleUrls: ['./view-all-purchase.component.scss']
})
export class ViewAllPurchaseComponent implements OnInit, OnDestroy {
ngOnInit() {
this.subscibe1 = this.vendorService.five_vendors().subscribe(data => {
if(data){
console.log(data)
this.vendor_list = data
}})
}
ngOnDestroy() {
}
}
Run Code Online (Sandbox Code Playgroud) 有一些 Cordova 插件不适用于 ionic serve。我们需要添加一个平台浏览器来使用这些插件。我刚刚将我的应用程序从 Cordova 迁移到了电容器。现在我无法将此类 Cordova 插件与电容器一起使用。我也尝试过浏览器 API,但没有解决方案。
我的问题很简单。如何使用在电容器平台浏览器上运行的 Cordova 插件。
先感谢您。
我有两种返回可观察值的方法。如果首先返回一些数据则无需调用第二个方法。但如果第一个方法返回 null,则仅调用第二个方法。
getdefaultAddress(id) : Observable<Address[]> {
return this.http.get<Address[]>(this.url + 'users/' + id + '/addresses' + '?filter[where][default]=true')
}
getFirstAddress(id): Observable<any>{
return this.http.get<any>(this.url + 'users/' + id +'/addresses?filter[limit]=1' )
}
Run Code Online (Sandbox Code Playgroud)
在使用 if-else 订阅第一个可观察值后,我可以轻松地做到这一点。喜欢
this.getdefaultAddress(id).subscibe(data =>{
if(data) {
// do something
}
else {
this.getFirstAddress(id).subscibe(data =>{
// do something
})
}
})
Run Code Online (Sandbox Code Playgroud)
现在我如何在不真正订阅第一个可观察对象的情况下检查这一点?有 rxjs 运算符吗?
先感谢您
如何使用去抖时间在 API 中搜索 keyup 输入更改事件的数据。看看下面的代码。它不起作用。每次输入更改时都会向 API 发出搜索请求。我想使用一些开发时间向 API 发出搜索请求。
先感谢您
.html
<input matInput (keyup) ="Onsearchinput($event.target.value)">
Run Code Online (Sandbox Code Playgroud)
.ts
Onsearchinput(value){
debounceTime(500)
console.log(value)
this.productService.search_Products(value).subscribe(data => {
if(data){
console.log(data)
this.product_list = data
}
})
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用离子模式内的离子幻灯片显示图像预览。但缩放功能不起作用。我添加了幻灯片选项。但不工作。随后,缩放功能可与普通页面一起使用。
backdropDismiss : true单击背景时第二个问题不关闭模式
这是代码
页面.html
<ion-slides [options]="slideOpts">
<ion-slide *ngFor="let p of products">
<img [src] = 'p.image_url' tappable (click)="openPreview(p.image_url)">
</ion-slide>
</ion-slides>
Run Code Online (Sandbox Code Playgroud)
页面.ts
async openPreview(image_url){
console.log(image_url)
const modal = await this.modalController.create({
component: ImageModalPage,
showBackdrop:true,
backdropDismiss: true,
componentProps: {
image_url : image_url,
},
});
return await modal.present();
}
Run Code Online (Sandbox Code Playgroud)
模态.html
<ion-item class="close-fake" lines="none" text-center>
<ion-button (click)="close()" fill="clear" color="light">
<ion-icon name="close" slot="start"></ion-icon>
back
</ion-button>
<ion-slides [options]="sliderOpts">
<ion-slide>
<div class="swiper-zoom-container">
<img [src] ='image_url'>
</div>
</ion-slide>
</ion-slides>
Run Code Online (Sandbox Code Playgroud)
模态.ts
sliderOpts = {
zoom: {
maxRatio: 5, …Run Code Online (Sandbox Code Playgroud) 我在 Angular 8 中使用反应式表单将数据插入数据库,但收到此错误TypeError: Converting circular structure to JSON。据说name财产是一个循环结构,我无法找出原因。谁能帮我吗?提前致谢。
我的组件.ts
export class AddMainCategoryComponent implements OnInit {
nm;
desc;
date;
get name() {
return this.addMCform.get('name')
}
get description() {
return this.addMCform.get('description')
}
constructor(public mainCategoryService: MainCategoryService, private fb: FormBuilder) { }
addMCform = this.fb.group({
name: ['', [Validators.required, Validators.minLength(3)]],
description: ['']
})
ngOnInit() {
}
addMain_categories() {
let main_category = {
nm: this.name,
desc: this.description,
date: new Date(),
}
this.mainCategoryService.addMain_categories(main_category).then(data => {
console.log(data);
})
}
}
Run Code Online (Sandbox Code Playgroud)
html
<div class="container-fluid"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试向我的应用程序添加身份验证。有两种模型,分别称为用户和用户凭证。用户拥有一个用户凭证。
对用户的发布请求工作正常。密码存储在用户凭证模型(散列)中,其他字段存储在用户模型中。
但是当我发出登录请求时,我收到以下错误
POST /users/login 中未处理的错误:500 TypeError:this.userRepository.findCredentials 不是 MyUserService.verifyCredentials 中的函数(D:\ionic-pr\loopback-projects\no\node_modules@loopback\authentication-jwt\src\services \user.service.ts:38:56) 在 process._tickCallback (内部/process/next_tick.js:68:7)
节点模块中的authentication-jwt内的用户服务抛出错误。
我不明白出了什么问题。
先感谢您
编辑: 现在我已经制作了两个控制器。第一个使发布请求工作正常。第二个执行登录如下
进口-
import {TokenService} from '@loopback/authentication';
import {Credentials, MyUserService, TokenServiceBindings, UserRepository, UserServiceBindings} from "@loopback/authentication-jwt";
import {inject} from '@loopback/core';
import {repository} from '@loopback/repository';
import {post, requestBody} from '@loopback/rest';
import {SecurityBindings, UserProfile} from '@loopback/security';
Run Code Online (Sandbox Code Playgroud)
构造函数 -
constructor(
@inject(TokenServiceBindings.TOKEN_SERVICE)
public jwtService: TokenService,
@inject(UserServiceBindings.USER_SERVICE)
public userService: MyUserService,
@inject(SecurityBindings.USER, {optional: true})
public user: UserProfile,
@repository(UserRepository) protected userRepository: UserRepository,
)
Run Code Online (Sandbox Code Playgroud) 我已经浏览了这个问题链接,我进行了后续更改,但仍然无法解决问题。仍然给我同样的错误。有人可以帮我吗。提前致谢 这是我来自 config.xml 的一段代码
<widget id="com.farm.fork" version="0.0.1"
xmlns="http://www.w3.org/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cdv="http://cordova.apache.org/ns/1.0">
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" >
<application android:usesCleartextTraffic="true" />
<application android:networkSecurityConfig="@xml/network_security_config" />
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
Run Code Online (Sandbox Code Playgroud)
network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="com.farm.fork" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true" android:usesCleartextTraffic="true">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" …Run Code Online (Sandbox Code Playgroud) 我正在使用以下命令在 android 上执行实时重新加载
ionic capacitor run android --livereload --external
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
这是我收到的错误
Run Code Online (Sandbox Code Playgroud)The web page at http://localhost:8100/ could not be loaded because net : ERR_CONNECTION_REFUSED
我知道移动设备不理解本地主机,但我认为--externalflag 会处理它。现在我必须做些什么才能在 Android 上进行实时重新加载。
先感谢您
最近我从 Cordova 转向电容器存储 API。我有一个非常奇怪的问题。在第 1 页,我将 4 个值设置为本地存储,但是当我在另一页上访问这些值时,一个值显示为 null。
我尝试了很多方法,但值user_id始终为空。
我确保价值存储在本地存储中。
在从本地存储设置和检索值后,我还附加了 console.log 的图像
存储服务.ts
async set(key: string, value: any): Promise<any> {
if(value == null || value == undefined) {
console.log("dont'do")
}
else {
try {
await Storage.set({
key: key,
value: value
});
return true;
} catch (reason) {
console.log(reason);
return false;
}
}
}
// to get a key/value pair
async get(key: string): Promise<any> {
try {
const result = await Storage.get({ key: key });
console.log('storageGET: ' …Run Code Online (Sandbox Code Playgroud) ionic4 ×5
angular ×4
capacitor ×3
javascript ×3
rxjs ×3
typescript ×3
android ×2
angular9 ×2
cordova ×2
angular8 ×1
cryptography ×1
encryption ×1
http ×1
ionic5 ×1
loopback4 ×1
observable ×1
react-native ×1
reactjs ×1
swiper.js ×1