我将下面的状态片段(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
答案 0 :(得分:3)
初始状态可以是字符串,但是在每个开关的情况下它也应该返回一个字符串。
更新状态时,您不需要复制,因为整个状态是一个字符串,您只需返回新字符串。如果没有变化,您只需返回旧状态。
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

希望这有帮助。