在我们的应用中,我们为产品制作了一个 API,每页限制为 15 个。所以我们的 reducer 是这样的。
collection: {
"total": 0,
"per_page": 0,
"current_page": 0,
"last_page": 0,
"from": 0,
"to": 0,
data: []
},
isFetching: false,
isFetchingError: false
在第一次加载时,我们获取了有限数量的产品,然后我们对其进行了分页.. 在 redux 中使用选择器https://github.com/rackt/reselect
加载成千上万的数据会使您的应用变得非常缓慢。
const paginated = (state = initialState, action) => {
switch (action.type) {
case FETCH_PAGINATED_PRODUCTS:
return {
...state,
isFetching: true,
isFetchingError: false
};
case FETCH_PAGINATED_PRODUCTS_SUCCESS:
return {
...state,
collection: action.payload,
isFetching: false
};
case FETCH_PAGINATED_PRODUCTS_ERROR:
return {
...state,
isFetching: false,
isFetchingError: true
};
default:
return state
我们使用axios 请求:
https://github.com/mzabriskie/axios