我有一个关于React数据获取的良好实践的一般性问题。
通常,我阅读的所有教程都建议在componentDidMount
中获取数据。所以我的生命周期看起来像这样
render
componentDidMount
fetch ... setState
render
现在,我有一些按钮,单击这些按钮应该可以获取更多数据。但是componentDidMount
将不再被调用。那么在fetch
被调用之后再次调用componentDidMount
的最佳实践是什么?
答案 0 :(得分:2)
您不必将fecth
呼叫放入componentDidMount
中。您可以将抓取操作放在componentDidMount
之外的函数中,然后在componentDidMount
中调用它,然后在执行任何按钮操作后再次调用它。
componentDidMount() {
this.fetchApi();
}
fetchApi = () => {
//call fetch
}
答案 1 :(得分:0)
ComponentDidMount在组件生命周期中仅工作一次-在安装组件时首次渲染之后。据我了解,您需要通过单击按钮来获取更多数据,因此需要这样的内容:
async loadData() {
const processedResponse = await fetchAsyncFunction()
this.setState ({yourStateParam: processedResponse })
...
render(){
return(
<button onClick={this.loadData}
)
}