【发布时间】:2017-05-29 15:21:41
【问题描述】:
这是来自非常简单的博客 react-redux 应用程序的 reducer_posts.js。
import _ from 'lodash';
import { FETCH_POSTS, FETCH_ONE_POST, DELETE_POST } from '../actions/index';
export default function (state = {}, action) {
switch (action.type) {
case DELETE_POST:
return _.omit(state, action.payload);
case FETCH_ONE_POST:
return { ...state, [action.payload.data._id]: action.payload.data };
case FETCH_POSTS:
return _.mapKeys(action.payload.data, '_id');
default:
return state;
}
}
_.omit(state, action.payload) 是在没有 action.payload 的情况下返回状态,所以它是在没有删除帖子的情况下返回状态。
_.mapKeys(action.payload.data, '_id') 创建一个与初始对象具有相同值的对象,但新对象的新键取自 action.payload.data._id
但我不能只得到该代码中的内容,这段语法正是这样做的:
return { ...state, [action.payload.data._id]: action.payload.data };
这行代码有什么作用? ... 是什么意思?
【问题讨论】:
-
嘿,my answer 有帮助吗?有什么不清楚的地方吗?
-
@Maximus 谢谢,我终于明白了!
标签: javascript reactjs redux react-redux