首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在react/redux中从reducers返回新状态的最佳实践是什么?

在react/redux中从reducers返回新状态的最佳实践是什么?
EN

Stack Overflow用户
提问于 2018-05-18 15:00:19
回答 3查看 1.8K关注 0票数 1

从缩减程序返回新状态的最佳实践是使用immutability-helpers中的$setupdate,还是使用Object.assign()

EN

回答 3

Stack Overflow用户

发布于 2018-05-18 17:32:04

就我个人而言,在处理易于管理状态的项目时,我不会使用不变的帮助器。如果你有一个非常大的状态,那么使用不变性助手会很有帮助,这样你就不太可能犯错误了。

对于在reducer中返回状态,通常的做法是通过使用扩展运算符返回新状态。这看起来像这样:

return {...state, newProp: 'value', etc...}

票数 2
EN

Stack Overflow用户

发布于 2018-05-18 15:24:51

您可以在redux的reducer中创建新的状态,也可以使用set方法更改状态,您可以作为道具返回到您的索引页

例如:在reducer中,你可以这样写

state.set('tasks',action.response)

票数 0
EN

Stack Overflow用户

发布于 2018-05-19 20:00:16

首先,你需要对redux有一个清晰的理解。这是你前台的后店。redux将数据存储为您定义的堆叠技术FIFO或LIFO。

不需要重新赋值,只需使用ES6 SPREAD运算符和解构返回操作对象即可。下面我试着举个例子:

代码语言:javascript
复制
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

如果要设置对象属性,则使用解构

代码语言:javascript
复制
return {
      ...state,
      text:action.text
    }

您所在的州中已有text属性。如果没有,它会在你的状态中添加一个属性。我认为它可以帮助你理解一些重复的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50405544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档