我正在合并下面的状态片段 (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/