React/redux:在允许/禁止/鼓励/鼓励派遣行动的生命周期方法中?为什么?

jhe*_*dus 11 reactjs redux react-redux

在哪个反应生命周期方法(https://facebook.github.io/react/docs/react-component.html)允许/禁止/推荐/不建议派遣redux行动?为什么?

假设我的无状态组件使用从服务器加载的数据,是否可以在render()安排ajax调用期间调度操作?

Ale*_*rra 3

答案是固执己见,但一般来说是不受欢迎的:生命周期方法被调用以响应组件树的状态更改,但分派操作可能会启动另一个状态更改。redux 试图避免的是事件处理程序级联更新情况:您应该根据操作进行状态更改,而不做其他事情,否则您将出现这些反应性循环。状态改变同时发生。

实际上,为了方便起见,这条规则经常被放宽。所以没有真正的正确答案!就像软件开发中的大多数事情一样,它是微妙的。

其他答案是正确的,关于在渲染中不这样做(或任何不纯的事情):您想要的事件可能是“当安装此组件时”与“每当调用其渲染时”,这更好地由 constructor 或处理componentWillMount。另外,您想要在渲染中完成的任何事情都可以通过 // 更好地componentDidMount实现。componentWillUpdatecomponentDidUpdate