小编pra*_*wal的帖子

反应导航 5 错误绑定元素“导航”隐式具有“任何”类型.ts

我是本机反应的新手。我正在尝试使用 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)

javascript typescript reactjs react-native react-navigation

9
推荐指数
1
解决办法
4225
查看次数

类型 'IterableIterator&lt;[number, any]&gt;' 不是数组类型或字符串类型

我正在使用 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 ionic4

7
推荐指数
2
解决办法
5651
查看次数

typescript crypto-js 如何使用 sha256 算法和密钥散列数据

我正在使用 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值是匹配的,说明我们的代码有问题。谢谢

javascript encryption cryptography typescript

6
推荐指数
1
解决办法
7645
查看次数

使用@ngneat/until-destroy npm 包取消订阅 Angular 9 observable

我正在使用@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)

observable rxjs angular angular9

6
推荐指数
1
解决办法
4146
查看次数

Ionic Capacitor 如何使用适用于平台浏览器的cordova 插件

有一些 Cordova 插件不适用于 ionic serve。我们需要添加一个平台浏览器来使用这些插件。我刚刚将我的应用程序从 Cordova 迁移到了电容器。现在我无法将此类 Cordova 插件与电容器一起使用。我也尝试过浏览器 API,但没有解决方案。

我的问题很简单。如何使用在电容器平台浏览器上运行的 Cordova 插件。

先感谢您。

cordova ionic-framework capacitor

5
推荐指数
0
解决办法
295
查看次数

仅当第一个可观察值为空时,Angular rxjs 才订阅第二个可观察值

我有两种返回可观察值的方法。如果首先返回一些数据则无需调用第二个方法。但如果第一个方法返回 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 运算符吗?

先感谢您

rxjs angular angular8

4
推荐指数
1
解决办法
5631
查看次数

Angular 9如何使用debouncetime进行输入更改事件(keyup)

如何使用去抖时间在 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)

javascript rxjs angular angular9

4
推荐指数
1
解决办法
1万
查看次数

离子滑动和模态的 ionic 4/5 问题

我正在尝试使用离子模式内的离子幻灯片显示图像预览。但缩放功能不起作用。我添加了幻灯片选项。但不工作。随后,缩放功能可与普通页面一起使用。

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)

ionic-framework ionic4 ionic5 swiper.js

4
推荐指数
1
解决办法
1804
查看次数

TypeError:将循环结构转换为 JSON 属性“名称”会关闭循环

我在 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)

angular angular-reactive-forms

3
推荐指数
1
解决办法
5453
查看次数

Loopback 4 身份验证登录控制器问题

我正在尝试向我的应用程序添加身份验证。有两种模型,分别称为用户和用户凭证。用户拥有一个用户凭证。

对用户的发布请求工作正常。密码存储在用户凭证模型(散列)中,其他字段存储在用户模型中。

但是当我发出登录请求时,我收到以下错误

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)

loopback4

3
推荐指数
1
解决办法
1410
查看次数

无法加载资源:net::ERR_CLEARTEXT_NOT_PERMITTED

我已经浏览了这个问题链接,我进行了后续更改,但仍然无法解决问题。仍然给我同样的错误。有人可以帮我吗。提前致谢 这是我来自 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 http cordova ionic4

2
推荐指数
2
解决办法
8684
查看次数

离子电容器实时重新加载在 Android 上不起作用

我正在使用以下命令在 android 上执行实时重新加载

ionic capacitor run android --livereload --external
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

这是我收到的错误

The web page at http://localhost:8100/ could not be loaded because

net : ERR_CONNECTION_REFUSED
Run Code Online (Sandbox Code Playgroud)

我知道移动设备不理解本地主机,但我认为--externalflag 会处理它。现在我必须做些什么才能在 Android 上进行实时重新加载。

先感谢您

android ionic-framework ionic4 capacitor

1
推荐指数
1
解决办法
4963
查看次数

ionic 4 电容器存储无法正常工作

最近我从 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)

ionic-framework ionic4 capacitor

0
推荐指数
1
解决办法
3154
查看次数