在页面加载时将redux状态传递给组件



我有一个react-redux应用程序,在我的根组件(route "/"(中,在componentDidMount()内对我的rails API发出GET请求以获取一些数据。这些数据被添加到redux存储中,并且相应地在组件之间传递状态。

现在,我有一个组件,它从根组件获取道具以正确渲染。这个组件有一个用户可以导航到的特定路由。现在,如果用户将这个路由发送给他们的一个朋友,并且他们在浏览器中键入了它,它将不会呈现,因为根组件从未在他们的端部呈现,因为他们从未导航过"/&";,因此道具将不可用。

有办法解决这个问题吗?也许我可以在这个组件的呈现方法中有一个条件来从我的rails API发出GET请求,或者我可以将API调用添加到构造函数?但我觉得这是不好的做法。我无法将其添加到componentDidMount()内部,因为render()componentDidMount()之前执行。

希望这是有意义的,我感谢任何帮助!

您需要检查redux状态是否为空。如果它为空,则从服务器获取数据。为了避免代码重复,您应该在HOC(Higer order组件(中实现这一点。然后你可以用HOC包装页面。

您可以在React文档中查看如何实现HOC:https://reactjs.org/docs/higher-order-components.html

相关内容

  • 没有找到相关文章

最新更新