在React-Native中捕获错误后如何重新启动页面?

问题描述 投票:0回答:1

我想在捕获特定错误后重新呈现整个页面。这是我的代码:

        FingerprintScanner
        .authenticate({ description: 'Log in with Biometrics' })
        .then(() => {
            this.props.navigation.navigate('MainAuth');
        })
        .catch((error) => {if (error.name === 'UserCancel'
                || error.name === 'UserFallback') {
                //re-render the app
            }
        })

因此,在捕获这些错误之后,我希望能够重新启动该页面。我使用的是react-native-fingerprint-scanner,它从具有“取消”按钮的本机代码中弹出一个模式,我不希望用户能够取消该按钮,但我无法删除该按钮,因为它在本机代码(我不想在那儿乱七八糟)。因此,唯一的解决方案是在单击“取消”后再次调用相同的方法。我只是通过调用此代码所在的方法来尝试,并且它只能工作一次,但是当我再次尝试取消时,它不再调用该方法。为什么?

android react-native error-handling fingerprint touch-id
1个回答
0
投票

您可以尝试这样的事情。

function confirmFingerprint() {
    FingerprintScanner
        .authenticate({ description: 'Log in with Biometrics' })
        .then(() => {
            return true
        })
        .catch((error) => {if (error.name === 'UserCancel'
                || error.name === 'UserFallback') {
                return false
            }
        })
}

function click() {
  if(confirmFingerprint()) {
    this.props.navigation.navigate('MainAuth');
  } else {
     click();
  }
}

© www.soinside.com 2019 - 2024. All rights reserved.