从缩减程序返回新状态的最佳实践是使用immutability-helpers中的$set和update,还是使用Object.assign()
发布于 2018-05-18 17:32:04
就我个人而言,在处理易于管理状态的项目时,我不会使用不变的帮助器。如果你有一个非常大的状态,那么使用不变性助手会很有帮助,这样你就不太可能犯错误了。
对于在reducer中返回状态,通常的做法是通过使用扩展运算符返回新状态。这看起来像这样:
return {...state, newProp: 'value', etc...}
发布于 2018-05-18 15:24:51
您可以在redux的reducer中创建新的状态,也可以使用set方法更改状态,您可以作为道具返回到您的索引页
例如:在reducer中,你可以这样写
state.set('tasks',action.response)
发布于 2018-05-19 20:00:16
首先,你需要对redux有一个清晰的理解。这是你前台的后店。redux将数据存储为您定义的堆叠技术FIFO或LIFO。
不需要重新赋值,只需使用ES6 SPREAD运算符和解构返回操作对象即可。下面我试着举个例子:
const postsReducerDefaultState = [];
const postsReducer = (state=postsReducerDefaultState, action) => {
switch(action.type) {
case 'ADD_POST':
return [action.post, ...state];
case 'REMOVE_POST':
return state.filter(post => post.id !== action.id)
case 'SET_POSTS':
return action.posts;
default:
return state;
}
};
export default postsReducer;ADD_POST:先返回最新的[action.post, ...state],然后再传播你的旧帖子。
SET_POSTS:返回操作传入的action.posts。
如果要设置对象属性,则使用解构
return {
...state,
text:action.text
}您所在的州中已有text属性。如果没有,它会在你的状态中添加一个属性。我认为它可以帮助你理解一些重复的东西。
https://stackoverflow.com/questions/50405544
复制相似问题