无法理解 react redux 中的 reducer 函数
unable to understand reducer function in react redux
这是我的减速器函数:
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];
到目前为止我所了解的是 reducer 函数得到旧状态和新状态。旧状态由 'posts'
表示,新状态由 'action.payload'
表示...现在我不明白的是 [...posts, action.payload]
是什么?
那三个点是什么?
为什么有方括号?
reducer 函数 returns 是什么?
这里发生了什么?
我是一名 java 程序员,我在这里什么都不懂
我都明白了。
reducer 函数正在获取两个参数 (posts = [], action)
:
第一个是旧状态,第二个参数是包含类型和新数据的操作对象...这个 reducer 函数 returns 通过将我的新数据添加到旧状态来创建新状态
在这个
case CREATE:
return [...posts, action.payload];
这些...
三个点是扩展语法,可以通过转到chellappan在评论部分给出的以下link来完全理解:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
[]
方括号表示一个数组,这是我们的新状态。
这是我的减速器函数:
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];
到目前为止我所了解的是 reducer 函数得到旧状态和新状态。旧状态由 'posts'
表示,新状态由 'action.payload'
表示...现在我不明白的是 [...posts, action.payload]
是什么?
那三个点是什么? 为什么有方括号? reducer 函数 returns 是什么? 这里发生了什么? 我是一名 java 程序员,我在这里什么都不懂
我都明白了。
reducer 函数正在获取两个参数 (posts = [], action)
:
第一个是旧状态,第二个参数是包含类型和新数据的操作对象...这个 reducer 函数 returns 通过将我的新数据添加到旧状态来创建新状态
在这个
case CREATE:
return [...posts, action.payload];
这些...
三个点是扩展语法,可以通过转到chellappan在评论部分给出的以下link来完全理解:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
[]
方括号表示一个数组,这是我们的新状态。