2017-07-27 16 views
0

私の反応するネイティブアプリでは、ユーザーがタッチIDセンサーを持っているかどうかを検出し、必要ならば、通常のアクションボタンの代わりにネイティブエレメントアクションを持つボタンを表示したいと考えています。 if文を作成するとエラーが表示されます。私は、EXPOクライアントSDKで 'create-react-native-app'を使用しています。react-nativeネイティブ要素検出

エラーメッセージ

enter image description here

コード

class LoginButton extends React.Component { 
    state = { 
     waiting: false, 
    }; 

    render() { 
     let authFunction; 
     if (NativeModules.ExponentFingerprint.hasHardwareAsync() === true) { 
      if (Platform.OS === 'android') { 
       authFunction = async() => { 
        this.setState({waiting: true}); 
        try { 
         let result = await NativeModules.ExponentFingerprint.authenticateAsync(); 
         if (result.success) { 
          alert('Udało Ci się zalogować') 
         } else { 
          alert('Logowanie nie udane') 
         } 
        } 
        finally { 
         this.setState({waiting: false}) 
        } 
       }; 
      } else if (Platform.OS === 'ios') { 
       authFunction = async() => { 
        let result = await NativeModules.ExponentFingerprint.authenticateAsync(
         'Zaloguj się przy użyciu TouchID' 
        ); 
        if (result.success) { 
         alert('Udało Ci się zalogować') 
        } else { 
         alert('Logowanie nie udane') 
        } 
       }; 
      } 
      return (
       <Button onPress={authFunction} title="Zaloguj się przy użyciu odcisku palca" style={styles.buttonStyle}> 
        {this.state.waiting 
         ? 'Czekam na TouchID...' 
         : 'Zalogowano przy użyciu TouchID'} 
       </Button> 
      ) 

     } else if (NativeModules.ExponentFingerprint.hasHardwareAsync() === false) { 
      return (
       <Button onPress={} title="Zaloguj się" style={styles.buttonStyle}/> 
      ) 
     } 
    } 
} 

答えて

1

は、問題はここに

<Button 
    onPress={} <--- here 
    title="Zaloguj się" 
    style={styles.buttonStyle} 
/> 

で反応しません空の式をJSX属性に割り当てることができます。

それを修正するために、それは

<Button title="Zaloguj się" style={styles.buttonStyle}/> 

またはnullになりauthFunctionに、例えば、それを割り当てる取り除きます。

<Button onPress={authFunction} title="Zaloguj się" style={styles.buttonStyle}/>