javascript - 一片 React redux 存储状态是否必须是一个对象?

标签 javascript reactjs redux

我正在合并下面的状态片段 (filterText),它用于过滤结果,因此它只需要保存一个字符串。是否可以让初始状态为空字符串?或者它是否必须是一个对象,即使它只是整个较大商店对象的一部分?如果我可以将它作为一个字符串,我如何为每个调度制作一个新的状态副本?当前的 return {...state, ...action.data} 看起来很奇怪。

const initialState = ''

const filterText = (state = initialState, action) => {
  switch (action.type) {
    case constants.FILTER_CONTACTS:
      return {
        ...state,
        ...action.data
      }
    default:
      return state
  }
}

export default filterText

最佳答案

初始状态可以是一个字符串,但是在每个 switch case 中它也应该返回一个字符串。

更新状态时,您不需要复制,因为您的整个状态都是一个字符串,您只需返回新字符串即可。如果没有变化,您只需返回旧状态。

const initialState = ''

const filterText = (state = initialState, action) => {
  switch (action.type) {
    case constants.FILTER_CONTACTS:
      // return a string here, I'm assuming action.data is a string
      return action.data;
    default:
      return state
  }
}

export default filterText

希望这对您有所帮助。

关于javascript - 一片 React redux 存储状态是否必须是一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39988607/

相关文章:

javascript - react 严格模式

reactjs - useEffect() 完成并具有值后的 setState

javascript - 如何解决 React 应用程序中 Redux 更新过于频繁的问题?

javascript - 多个请求的axios拦截器刷新 token

JavaScript 生成 2 个数字之间的所有数字

javascript - React.js 问题 : How do I apply multiple classes to a component using a ternary operator?

javascript - 类型错误 : Cannot read property '49' of undefined; for MachineTyping effect component in React

asynchronous - 使用 redux-api-middleware 链接异步操作

javascript - 从本地json获取带有id的单个数据

javascript - 如何在 Node/Javascript 中以编程方式减小 PDF 大小