我在应用程序中使用React和Redux。我正在尝试从任何JSX代码甚至渲染方法中清除容器。我试图使用我的容器来获取数据,然后在导出部分使用connect
并将那些数据推送到其他具有JSX代码的组件中。
问题是,当我这样做时,我注意到componentdidMount
中用于获取数据的redux-action并未运行,而我注意到这是因为我的componentDidMount
没有运行被叫。
那我该怎么办?
答案 0 :(得分:1)
您的最大问题是componentDidMount
仅在render
成功之后才被调用。这意味着如果没有渲染,您甚至都不希望它被调用。使用React生命周期方法的想法的一部分是,它们围绕着渲染和状态而工作,但是如果您没有渲染,则状态更改和检测到componentDidMount
的重新渲染是不可能发生的。 componentDidMount
隐含着render
函数的工作。
如果您查看this diagram,则可以发现没有render
依赖的生命周期函数无法解决。 render
是唯一可以触发DOM
侦听的componentDidMount
更改的事物。
也许可以考虑执行componentDidMount
部分here中所述的操作,其中您的渲染返回componentDidMount
收集的数据,然后该状态可以在您的其他组件中用作道具。 / p>
详细了解React生命周期方法here