#javascript #reactjs #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
Ответ №1:
Начальное состояние может быть строкой, но тогда в каждом случае переключения оно также должно возвращать строку.
При обновлении состояния вам не нужно будет создавать копию, поскольку все ваше состояние представляет собой строку, вы просто возвращаете новую строку. Если изменений нет, вы просто вернете старое состояние.
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
Надеюсь, это поможет.