我应该使用Redux来避免由道具引起的这种无限循环吗?

时间:2017-01-01 18:13:33

标签: reactjs redux

我的一个朋友正在用React重新创建这个TV shows guide

现在他有一个像 moveScrollPosition 这样的道具,可以在移动小时滚动时处理滚动。它向下传递道具并移动电视节目的指南。当您移动程序并调用相同的道具时会出现问题。程序位置移动并调用道具移动指南。那里有一个无限循环,因为小时滚动调用道具来移动电视节目。

他应该使用Redux在外面存储全局滚动位置吗?这样,小时滚动和电视节目滚动将调用动作并更新滚动位置。电视节目不会调用相同的道具,只需依靠Redux的道具以及小时滚动。

澄清:

1)小时选择器 - >道具 - >电视节目

2)电视节目 - >道具 - >小时滚动 - >道具 - >电视节目 - >环

问候。

2 个答案:

答案 0 :(得分:1)

它不一定是redux。

通常,您需要一些父组件来维护将作为props传递给子级的状态(滚动位置)。它还需要一个更新滚动位置的功能。此函数也将作为prop传递给两个子组件。每当子组件更新滚动时,父组件将更新状态,并将新值作为道具传递给子项。

答案 1 :(得分:1)

通常,您需要实现防护以防止对后端的异步调用。

如果您在componentDidMountcomponentWillReceiveProps中调用后端,则可能会在结果进入时重新启动,这可能会导致对该异步方法的新调用。如果没有后卫,你可能会进入无限循环。