2016-05-14 18 views
0

React-nativeアプリでは、ユーザーがボタンを押して回答を送信すると、答えが正しいかどうかを知らせる警告ダイアログが表示されます。だから、TouchableHighlightボタンのonPressメソッドで関数を呼び出しています。その関数内で、警告ダイアログを指定します。ただし、これにより、関数が各フレームで継続的に呼び出されるため、警告ダイアログが繰り返し表示されます。一度しか呼び出されないようにするにはどうすればよいですか?React Native関数内でAlertダイアログを作成しますか?

関連するコード:あなたのレンダリング機能にonSubmitPressed呼び出している

onSubmitPressed: function() { 
    if (this.checkSolution) { 
     Alert.alert(
      'Alert title', 
      "Correct!" 
     ); 
    } 
    else { 
     Alert.alert(
      'Alert title', 
      "Incorrect!" 
     ); 
    } 
}, 

答えて

5

: 機能

render: function() {      
    return (
     <View style={styles.container}> 
      <Text style={styles.title}>{this.state.title}</Text> 
      <TouchableHighlight style = {styles.button} 
        onPress={this.onSubmitPressed()} 
        underlayColor='#99d9f4'> 
        <Text style = {styles.buttonText}>SUBMIT</Text> 
      </TouchableHighlight> 
     </View> 
    ); 
}, 

検証機能をレンダリングします。 onPress={this.onSubmitPressed()}onPress={this.onSubmitPressed}に変更してください(括弧がないことに注意してください)。

+0

これは、ありがとう!なぜかっこを削除すると動作が変わるのですか? – user3802348

+0

カッコが表示されている場合は、関数自体ではなくonPressへの呼び出しの結果を渡します。しかし、あなたが本当に望むのは、関数を渡すことです。それはかっこなしで起こることです。 –

関連する問題