在此代码沙箱中 https://codesandbox.io/s/qxo15z8k0j
我试图在子Component的componentDidMount上调用setState
这不是一个好习惯吗?为什么以及如果不是,我们应该在哪里进行setstate以及何时可以在componentDidMount中设置setState
我在本文中看到,提到了componentDidMount中的fetchData https://daveceddia.com/where-fetch-data-componentwillmount-vs-componentdidmount/
请提出建议
答案 0 :(得分:2)
您可以在componentDidMount内部设置setState。
直接查看文档
您可以立即在componentDidMount()中调用setState()。它会触发额外的渲染,但是会在浏览器更新屏幕之前发生。
他们确实警告说,这可能会导致性能下降,并建议您最有可能在构造函数中设置组件的初始状态。
答案 1 :(得分:1)
实际上不是。当我们在componentDidMount中使用setState时,它将触发一个精确的render()调用,它发生在呈现组件之前,因此用户看不到更改。有时可能会导致性能问题。 / p>
通常在您从网络上获取数据时发生,并且在成功获取数据后应设置setState。