在没有render方法的情况下触发componentDidMount

时间:2019-07-26 16:06:20

标签: reactjs redux react-redux

我在应用程序中使用React和Redux。我正在尝试从任何JSX代码甚至渲染方法中清除容器。我试图使用我的容器来获取数据,然后在导出部分使用connect并将那些数据推送到其他具有JSX代码的组件中。

问题是,当我这样做时,我注意到componentdidMount中用于获取数据的redux-action并未运行,而我注意到这是因为我的componentDidMount没有运行被叫。 那我该怎么办?

1 个答案:

答案 0 :(得分:1)

您的最大问题是componentDidMount仅在render成功之后才被调用。这意味着如果没有渲染,您甚至都不希望它被调用。使用React生命周期方法的想法的一部分是,它们围绕着渲染和状态而工作,但是如果您没有渲染,则状态更改和检测到componentDidMount的重新渲染是不可能发生的。 componentDidMount隐含着render函数的工作。

如果您查看this diagram,则可以发现没有render依赖的生命周期函数无法解决。 render是唯一可以触发DOM侦听的componentDidMount更改的事物。

也许可以考虑执行componentDidMount部分here中所述的操作,其中您的渲染返回componentDidMount收集的数据,然后该状态可以在您的其他组件中用作道具。 / p>

详细了解React生命周期方法here