reactjs isMounted API的文档提到:



我的主要问题是,何时应在调用setState()的情况下对isMounted()进行调用?

Initial AJAX Tutorial http://facebook.github.io/react/tips/initial-ajax.html中,XHR回调中使用的setState使用isMounted()保护器,但这是必需的吗?

第二个问题是,如果需要的话,为什么会这样呢?看来检查本身非常简单,可以内联到setState()中,而不会造成任何明显的性能损失,但是大大简化了API的使用。

最佳答案

从逻辑上讲,如果在调用回调时可以卸载组件,则需要isMounted。

最佳做法是在componentWillUnmount中避免这种情况,例如中止ajax请求,取消超时或取消订阅事件。

可以说,这种api更简单,因为如果在不适当的时间调用setState,它不会默默地失败。静默地失败会导致许多难以跟踪的错误。

关于ReactJS:什么时候应该由isMounted保护setState?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26821165/

10-10 19:16