我是React的新手,并且正在撰写无限滚动功能。正在访问状态的行为是否违反Flux原则?
window.addEventListener('scroll', DutyActions.scrollDuties);
在每个滚动事件,我呼吁行动scrollDuties
,从服务器获取数据。然后调用名为loadDuties
的服务器操作将响应传递给存储,并将其传递给视图。
问题是,在快速滚动时,它会向API发出多次命中,因为第二个滚动事件会在页面上呈现setState({loading: true})
语句之前触发。我认为唯一的解决方案是读取操作中的状态,并且仅在loading
标志为假时才使ajax命中。
这会违反Flux原则吗?
我编辑此为清楚起见,但你要添加具有竞争条件的代码,以便我们可以帮你更好一点。理想情况下,您应该提供一个可重复的最低限度情况。 –
我不会从Action内部读取状态,而是从组件内部读取状态。 –
您是否尝试使用去抖功能? https://davidwalsh.name/javascript-debounce-function 对我来说,它似乎应该解决您的问题与多个事件命中。 – Vladiks