我的一个朋友正在用React重新创建这个TV shows guide。
现在他有一个像 moveScrollPosition 这样的道具,可以在移动小时滚动时处理滚动。它向下传递道具并移动电视节目的指南。当您移动程序并调用相同的道具时会出现问题。程序位置移动并调用道具移动指南。那里有一个无限循环,因为小时滚动调用道具来移动电视节目。
他应该使用Redux在外面存储全局滚动位置吗?这样,小时滚动和电视节目滚动将调用动作并更新滚动位置。电视节目不会调用相同的道具,只需依靠Redux的道具以及小时滚动。
澄清:
1)小时选择器 - >道具 - >电视节目
2)电视节目 - >道具 - >小时滚动 - >道具 - >电视节目 - >环
问候。
答案 0 :(得分:1)
它不一定是redux。
通常,您需要一些父组件来维护将作为props传递给子级的状态(滚动位置)。它还需要一个更新滚动位置的功能。此函数也将作为prop传递给两个子组件。每当子组件更新滚动时,父组件将更新状态,并将新值作为道具传递给子项。
答案 1 :(得分:1)
通常,您需要实现防护以防止对后端的异步调用。
如果您在componentDidMount
或componentWillReceiveProps
中调用后端,则可能会在结果进入时重新启动,这可能会导致对该异步方法的新调用。如果没有后卫,你可能会进入无限循环。