【发布时间】:2017-08-19 19:39:40
【问题描述】:
我正在使用 Redux 构建产品列表网格(例如在电子商务网站主页中)。用户可以无限滚动,并且在滚动时从服务器加载项目。在空闲时间还有一个抢先获取,用于下一批项目。
我已将我的 redux 操作(部分)建模如下:
FETCH_PRODUCTS_REQUEST:在发起请求时分派
FETCH_PRODUCTS_SUCCESS:在之前的请求成功时分派
- LOAD_PRODUCTS:当用户滚动到页面底部附近时调度,因此可以将预取的项目加载到 DOM 上。
在中间 LOAD_PRODUCTS 期间,我可以设置超时以调度 FETCH_PRODUCTS_REQUEST 以便抢先获取下一批的项目集。
但是,我不完全确定如何在初始页面加载时(即安装 ProductGrid 组件时)同步这些操作。理想情况下,我希望在组件安装时调度 FETCH_PRODUCTS_REQUEST,然后等待 FETCH_PRODUCTS_SUCCESS 发生,然后调度 LOAD_PRODUCTS。
考虑到 Redux 中的单向数据流,我不清楚如何确保初始 FETCH_PRODUCTS_SUCCESS 在我可以发送LOAD_PRODUCTS 将此数据呈现到 DOM 上。
我正在使用 redux-saga 库来调度异步操作。
任何帮助将不胜感激!
【问题讨论】:
标签: javascript reactjs redux redux-saga