Я запускаю шаблон, подобный этому, предполагается, что SearchResultsContainer
смонтирован, и где-то панель поиска устанавливает ввод.
class SearchResults {
render() {
return(
<ResultsContext.Consumer value={input}>
{input => <SearchResultsContainer input=input}
</ResultsContext.Consumer>
)
}
class SearchResultsContainer
componentDidUpdate() {
//fetch data based on new input
if (check if data is the same) {
this.setState({
data: fetchedData
})
}
}
}
это вызовет двойную выборку всякий раз, когда новое значение контекста быловызван, потому что componentDidUpdate () сработает и установит данные.При новом вводе из контекста результатов он вызовет componentDidUpdate()
, извлечет, установит данные, затем вызовет componentDidUpdate()
и извлечет, затем проверит, совпадают ли данные, и остановит цикл.
Это правильный способ использования контекста?