Невозможно получить доступ к свойству объекта React Native App из внутреннего метода, используя это

Метод querySelectorAll() возвращает NodeList , который представляет собой набор узлов.

Следовательно, вам нужно повторить его, чтобы присоединить прослушиватели событий

var el = document.querySelectorAll('.block');
for(var i=0; i < el.length; i++){
    el[i].addEventListener('click', function () {
        alert('hello');
    }, false);
}

0
задан Kaan 13 July 2018 в 08:22
поделиться

1 ответ

При изменении переменной экземпляра ваше представление не перезагрузилось. вы должны использовать state var для перезагрузки.

Пример:

constructor() {
     super();
     this.state = { randomNumber:9 };
}

 render() {

    return (
        <View style={styles.container}>
            <Text>{this.state.randomNumber}</Text>
            <Button onPress={this.newNumber.bind(this)} title='New Random Number'/>
        </View>
    );
}

 newNumber() {
        var number = Math.floor((Math.random() * 10));
        Alert.alert('Old: ' + this.randomNumber);
        Alert.alert('New: ' + number);
        this.setState({randomNumber: number});
        Alert.alert('Set: ' + number);
  }
1
ответ дан CrazyVK 17 August 2018 в 13:21
поделиться
  • 1
    О да. Я забыл о состоянии. Однако предоставленный вами код не работает. Я получаю ошибку: undefined не является функцией (оценка 'this.setState ({randomNumber: number})') – Kaan 13 July 2018 в 08:37
  • 2
    Попробуйте мой обновленный код. – CrazyVK 13 July 2018 в 08:54
  • 3
    Да, это работает. Благодарю. Я также пробовал onPress={()=>this.newNumber()}, который также работает – Kaan 13 July 2018 в 08:57
  • 4
    Да, если мы используем функцию стрелок, нам не нужно связывать это, но в традиционной функции нам нужно связать это. – CrazyVK 13 July 2018 в 09:00
Другие вопросы по тегам:

Похожие вопросы: