无法理解react redux中的reducer函数



这是我的reducer函数:

export default (posts = [], action) => {
switch (action.type) {
case FETCH_ALL:
return action.payload;
case LIKE:
return posts.map((post) => (post._id === action.payload._id ? action.payload : post));
case CREATE:
return [...posts, action.payload];
case UPDATE:
return posts.map((post) => (post._id === action.payload._id ? action.payload : post));
case DELETE:
return posts.filter((post) => post._id !== action.payload);
default:
return posts;
}
};

case CREATE:
return [...posts, action.payload];

到目前为止我所理解的是,减速器函数得到旧状态和新状态。旧状态用'posts'表示,新状态用'action.payload'表示。现在我不明白的是什么是[...posts, action.payload]

那三个点是什么?为什么有方括号?reducer函数返回什么?这里发生了什么?我是一个Java程序员,我看不懂这里的任何东西

我明白了。

减速器函数得到两个参数(posts = [], action):

第一个参数是旧状态,第二个参数是动作对象,包括类型和新数据…这个reducer函数通过将新数据添加到旧状态

返回一个新状态在这个

case CREATE:
return [...posts, action.payload];

这些...三个点是扩展语法,可以通过访问chellappan在评论部分给出的链接来完全理解:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

[]方括号表示数组的新状态。

最新更新