在React组件生命周期方法上调用MobX操作是不好的做法

时间:2017-09-24 09:17:06

标签: reactjs asynchronous mobx mobx-react

我有异步操作,它从API获取数据并将其与商店中的集合合并,触发适当的计算以重新评估并填充视图。

我之前的解决方案是让@async-computed在其中包含触发变量(不用于除了触发重新计算之外的其他任何东西)并填充视图。

对@ computed-async感兴趣 - > @async动作重构,但我遇到的最后一个障碍让我徘徊。

虽然@computeds是第一次在我第一次到达时计算的,但是需要显式调用@action。

我无法在商店构造函数中调用它,因为它不可测试,所以我唯一可以在React组件中使用componentDidMount或WillMount。 出于性能原因,AFAIK最好在componentDidMount中完成。 但是(!)可以在React生命周期方法中明确调用动作吗?或者我应该认为这是不好的做法?

到目前为止,我宁愿避开它,但这个案例似乎更好地处理了@async-action,我想坚持下去,只要我没有打破任何更大的设计模式将会反击在我的脸上将来。

谢谢!

1 个答案:

答案 0 :(得分:0)

你是什么意思,它不可测试?如果组件需要来自io / store的数据来显示,你可以使用存根来提供数据吗?

有关详情,请参阅此文章:https://hackernoon.com/how-to-decouple-state-and-ui-a-k-a-you-dont-need-componentwillmount-cc90b787aa37

相关问题