这个减速机看起来还好吗?为什么作者使用let users;,这对我来说是不必要的。在FETCH_USER_FULLFILLED的情况下,这不是会导致2个用户吗?
const initalState = {
users: [],
loading: false,
error: null,
};
// REDCUER
function usersReducer(state = initalState, action) {
let users;
switch (action.type) {
case 'FETCH_USER_PENDING':
return { ...state, loading: true };
case 'FETCH_USER_FULFILLED':
users = action.payload.data.results;
return { ...state, loading: false, users };
case 'FETCH_USER_REJECTED':
return { ...state, loading: false, error: `${action.payload.message}` };
default:
return state;
}
}
export default usersReducer;发布于 2017-07-30 17:48:55
reducer没有问题,它不会在FETCH_USER_FULLFILLED中引起两个用户。但是,您是对的,没有必要使用let users;。因此,代码将如下所示
case 'FETCH_USER_FULFILLED':
return { ...state, loading: false, users: action.payload.data.results };当reducer第一次执行时,它将采用initalState的启动状态,因为如果没有传递参数,这是默认的。因此,users在开始时将是空数组,并将在FETCH_USER_FULLFILLED操作时填充
添加了编辑 users以利用ES6中的属性value shorthand功能
https://stackoverflow.com/questions/45398426
复制相似问题