小编god*_*oda的帖子

使用 componentdidupdate 响应上下文

我正在运行这样的模式,假设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
        })
      }
  }
}
Run Code Online (Sandbox Code Playgroud)

每当调用新的上下文值时,这将调用双重提取,因为 componentDidUpdate() 将触发并设置数据。在来自结果上下文的新输入上,它将调用componentDidUpdate()、获取、设置数据,然后调用componentDidUpdate()和获取,然后将检查数据是否相同并停止循环。

这是使用上下文的正确方法吗?

lifecycle reactjs

4
推荐指数
1
解决办法
5192
查看次数

标签 统计

lifecycle ×1

reactjs ×1