在我的 React / Redux 应用程序中,我在index.js(入口点)中触发API调用,因为我希望数据在用户导航到组件之前可用。
实际上,这种方法有助于减少用户的等待时间,因为我们将在用户到达组件之前加载数据。
在我们的用例中,我们需要使用props初始化组件状态(props
从商店传递)。我在方法中遇到了以下问题。
react-redux
connect
传递
包装器)将是undefined / null。所以我需要渲染"Loading.."
信息。当数据到达时,我们初始化组件状态
在setState()
componentWillRecieveProps().
constructor()
或componentWillMount()
从props
初始化状态,因为props
拥有数据。我不能只依赖于componentWillRecieveProps()
,因为它不会在初始化生命周期中执行。所以我最终在2个地方做了相同的初始化步骤,因为组件应该处理两种情况。这是一种正确的方法吗?或者有没有更好的方法来避免这种DRY代码。
提前致谢!!!
答案 0 :(得分:0)
我遇到了与您概述的完全相同的问题,并且还想要一个DRY解决方案,因此我最终为此目的创建了HOC(更高阶组件):
https://www.npmjs.com/package/react-prepare-wrapper
它允许您为componentWillMount
和componentWillReceiveProps
分配一个要调用的函数。