#javascript #reactjs #react-native
#javascript #reactjs #react-native
Вопрос:
Я только начал с reactjs и пытаюсь запустить горячую перезагрузку для моего jsx. Я разветвил это приложение: https://github.com/gaearon/react-hot-boilerplate/tree/next .
Я изменил app.js слегка , чтобы:
import React, { Component } from 'react';
export default class App extends Component {
constructor(){
super();
this.state = {
txt: 'this is the txt',
cat: 0
}
}
render() {
return (<div>
{this.state.txt}
<h1>sdfdsfdsfs, world.</h1>
</div>
);
}
}
Когда я меняю текст в теге h1, он обновляет браузер. Однако, когда я меняю свойство txt, ничего не происходит. Как я могу заставить это работать?
Комментарии:
1. Вы имеете в виду, что при изменении состояния txt
this.state = { ... }
в конструкторе ничего не происходит?
Ответ №1:
React-hot-loader не может перезагрузить изменения в исходное состояние в конструкторе. Это потому, что конструктор для компонента не вызывается react-hot-loader повторно, когда что-то внутри компонента изменяется.
Он не может перезагрузить изменения в исходное состояние. Не забывайте, что назначение этого свойства эквивалентно установке поля внутри конструктора. Даже если вы измените конструктор, поле уже установлено. Конструктор не запускается дважды. Так что это не поддерживается.
Проверьте эту проблему: https://github.com/gaearon/react-transform-hmr/issues/41