0
votes

Appelez-vous à SetState Fonction dans React Native, fonctionne uniquement dans la fonction arrow?

J'ai besoin de votre aide pour expliquer à propos de ce code natif de réact.

Code ci-dessous, lorsque la fonction UpdateState est écrite à l'aide de la fonction de flèche, le code fonctionne parfaitement p>

    import React, { Component } from 'react'
import { Text, View } from 'react-native'

export default class Home extends Component {
   state = {
      myState: 'aaaaa'
   }
   updateState (){
      this.setState({ myState: 'The state is updated' })
    }
   render() {
      return (
         <View>
            <Text onPress = {this.updateState}>
               UPDATE:{this.state.myState}
            </Text>            
         </View>
      );
   }
}


1 commentaires

Vous devriez le laisser avec une flèche. Les méthodes nécessitent réagir des composants ce lié ​​à eux. Les définitions de la fonction arrow sont une implémentation propre de cela.


3 Réponses :


1
votes

Si vous souhaitez utiliser une fonction , vous devez lier ceci dans le constructeur de sorte que la fonction updateState se réfère à la classe Lorsque vous vous référez à , ce . Essayez ce qui suit: xxx

, espérons-le, qui aide!


0 commentaires

2
votes

Si vous souhaitez utiliser sans arrow devrait ajouter lidez dans constructeur () xxx


1 commentaires

Bienvenue dans le débordement de pile. Veuillez noter que la manière préférée de dire «merci» ici est de voter de bonnes questions et de réponses utiles, et de accepter La réponse la plus utile à toutes les questions que vous posez. :)



0
votes

sur chaque rendu, la référence à la fonction est créée.

Ainsi, pour éviter que la fonction de liaison ou de flèche soit utilisée.

J'appelle une fonction comme ceci:

fonctionna = () => {}

TouchableOpacity onpress = {() => this.fonctiona ()}


1 commentaires

Génial!! Merci beaucoup!!