web-dev-qa-db-fra.com

Comment puis-je appeler la méthode à partir de la fonction onPress on Alert [React-Native]

Comment puis-je appeler la méthode à partir de la fonction onPress on Alert [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>

Après le bouton OK de la boîte de dialogue d'alerte, je dois appeler

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

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

Ce n'est pas du travail


13
boy_v

Premier problème, le composant Button a un accessoire title au lieu d'avoir <Text> Comme enfant. Le deuxième problème est que vous avez un tas d'erreurs de syntaxe et n'appelez pas les fonctions (ou la liaison) correctement. Si vous corrigez cela, cela devrait fonctionner correctement; par exemple:

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>
  );
}

Remarque:

  • Je ne sais pas ce que votre fonction alert() est censée faire, alors j'en ai créé une factice qui se connecte à la console.
  • Il existe d'autres façons de le faire, comme appeler onDeleteBTN() ou la liaison.
15
Michael Cheng