【发布时间】:2018-06-02 12:22:27
【问题描述】:
我有一个 Redux reducer,我试图在我的 reduce 中嵌套一组对象,但它正在中断。我似乎无权访问数组中的任何内容。但是,如果我从 reducer 返回一个数组而不是一个对象,它就可以正常工作。
const friendReducer = (state = {}, action) => {
console.log(action);
switch (action.type) {
case 'GET_FRIENDS':
return {
list: [
...state,
...action.payload,
],
};
default:
return state;
}
};
export default friendsReducer;
当我尝试访问我连接的组件中的list 时,我无法访问Array#splice 方法或Array#length 属性。以下是代码的其他相关部分:
const mapStateToProps = (state) => {
return {
friends: state.friends,
}
};
const rootReducer = {
friends: friendsReducer,
};
const store = createStore(
combineReducers({
...rootReducer,
router: routerReducer,
}),
{}, // initial state
compose(
applyMiddleware(thunk),
applyMiddleware(routerMiddleware(history)),
// eslint-disable-next-line no-underscore-dangle
(typeof window.__REDUX_DEVTOOLS_EXTENSION__ !== 'undefined') ? window.__REDUX_DEVTOOLS_EXTENSION__() : f => f,
),
);
export default store;
【问题讨论】:
-
检查问题以进行编辑
-
对不起,我将编辑主要问题,它看起来很混乱
-
抱歉,我修好了,复制的时候忘记编辑了
-
应该是
friends: state.friends.list以获得实际的朋友数组。 -
即使我使用它,我仍然会遇到同样的问题,我会再试一次
TypeError: Cannot read property 'length' of undefined
标签: reactjs ecmascript-6 redux