Я вызываю вызов API для поиска elastics с помощью onChange
, чтобы я мог запросить список для автозаполнения. Чтобы убедиться, что мой магазин был обновлен до перерегистрации, я добавил componentDidMount, чтобы я не отставал. Но добраться до точки нужны коды, так:response componentdidupdate вызывает бесконечный цикл
constructor(props) {
super(props)
this.state = {
inputValue: '',
options: []
};
this.props = {
inputValue: '',
options: []
};
this._onChange = this._onChange.bind(this);
}
componentDidMount() {
CodeStore.addChangeListener(this._onChange);
}
_onChange(event) {
if (this.state.inputValue && !event) {
var enteredChars = this.state.inputValue;
console.log('NO EVENT!');
} else if (event.target.value) {
console.log('EVENT!');
var enteredChars = event.target.value;
this.setState({inputValue: enteredChars});
}
CodeService.nextCode(enteredChars);
}
Как вы можете видеть, что я добавил некоторые события журнала просто чтобы убедиться, мое состояние делает правильно. Я читал о том, что setState
провоцирует регент, так что он находится внутри условия, но это не остановило цикл. И консольный журнал подтверждает условие переключения. Но наличие setState
внутри моего условия тормозит функциональность, и я не получаю список.
Вот мой журнал:
0
Home.jsx:48 EVENT!
Home.jsx:50 0
CodeService.js:27 request
CodeActions.js:10 dispatch
CodeStore.js:22 store
Home.jsx:43 1
Home.jsx:46 NO EVENT!
10OptionTemplate.jsx:15 render-list
CodeService.js:27 request
CodeActions.js:10 dispatch
CodeStore.js:22 store
Home.jsx:43 1
Home.jsx:46 NO EVENT!
10OptionTemplate.jsx:15 render-list
CodeService.js:27 request
CodeActions.js:10 dispatch
CodeStore.js:22 store
Home.jsx:43 1
Home.jsx:46 NO EVENT!
Бесконечность цикл не повредит производительности, так или иначе. Я думаю, из-за componentWillUnmount
, но следует избегать огромного количества вызовов API. Надеюсь, этого достаточно для каких-либо доказательств.
О, отлично, что действительно помогло мне :). Я опубликую здесь результат позже. Есть ли у вас источники, которые вы бы предоставили, чтобы погрузиться глубже в использование реакции? – bdart
Добро пожаловать. Что касается источников: [собственные страницы Реагирования] (https://facebook.github.io/react/docs/getting-started.html) - хороший источник. Я бы рекомендовал посмотреть видео. – wintvelt