web-dev-qa-db-ja.com

アラート機能のonPressからメソッドを呼び出す方法[React-Native]

アラート機能のonPressからメソッドを呼び出す方法[React-Native]

<Button
  onPress={{() => Alert.alert(
    'Alert Title',
    'alertMessage',
    [
      {text: 'Cancel', onPress: () => console.log('Cancel Pressed!')},
      {text: 'OK', onPress: () => {this.onDeleteBTN}},

    ],
    { cancelable: false }
  )}}
  >
      <Text> Delete Record </Text>
</Button>

アラートダイアログの[OK]ボタンの後、呼び出す必要があります

onDeleteBTN = () => {
    alert(' OnDelete');
}

{text: 'OK', onPress: () => {this.onDeleteBTN.bind(this)}},
{text: 'OK', onPress: () => {this.onDeleteBTN}},

機能しません


13
boy_v

最初の問題は、Buttonコンポーネントに_<Text>_を子として持つ代わりにtitleプロップがあります。 2番目の問題は、多くの構文エラーがあり、関数(またはバインド)を正しく呼び出していないことです。それを修正すれば、うまくいくはずです。例えば:

_alert = (msg) => {
  console.log(msg)
}

onDeleteBTN = () => {
  this.alert(' OnDelete')
}

render() {
  return (
    <View style={styles.container}>
      <Button
        title="Delete Record"
        onPress={() => Alert.alert(
          'Alert Title',
          'alertMessage',
          [
            {text: 'Cancel', onPress: () => console.log('Cancel Pressed!')},
            {text: 'OK', onPress: this.onDeleteBTN},
          ],
          { cancelable: false }
        )}
      />
    </View>
  );
}
_

注:

  • あなたのalert()関数が何をするのかわからないので、コンソールに記録するダミーの関数を作成しました。
  • onDeleteBTN()の呼び出しやバインディングなど、これを行う方法は他にもあります。
15
Michael Cheng