Я работаю над проектом, который использует ответ-редукс для лицевой стороны.и есть проблема, которую я уже решаю, но я не могу понять, почему.Может ли кто-нибудь дать мне идею?
проблема в том, что я инициирую свое состояние "guidelineManagement" ниже (оно находится в guidelineManagement.js):
const init = {
page: 'GuidelineTableComponent',
status: null,
msg: [],
error: null,
guidelineData: [],
data: []
}
и у меня есть другой редуктор, обрабатывающий состояние входа в систему,это в 'login.js'.Я использую combineReducers
для объединения двух редукторов.
сейчас, при каждой загрузке страницы я буду выполнять действие "fetchLoginStatus", оно загружает статус входа с сервера и дескриптор редуктора в login.js
,
так, в guidelineManagement
редукторе, он будет выполнять регистр по умолчанию.
моя работа выглядит так
default:
console.log({...state})
return {...state}
, но когда я проверяю регистратор после окончания «fetchLoginStatus»,состояние становится ниже:
до fetchLoginStatus
:
guidelineManagement:
data: Array []
error: null
guidelineData: Array []
msg: Array []
page: "GuidelineTableComponent"
status: null
<prototype>: Object { … }
, но после fetchLoginStatus
финиш:
guidelineManagement:
data: Array []
error: null
guidelineData: Array(3) [ {…}, {…}, {…} ]
msg: undefined
page: "GuidelineTableComponent"
status: "success"
<prototype>: Object { … }
guidelineManagement.msg становится неопределенным.
и если я изменю свой регистр по умолчанию на ниже, он будет работать нормально
default:
console.log({...state})
return state
результат после действия fetchLoginStatus
станет:
guidelineManagement:
data: Array []
error: null
guidelineData: Array(3) [ {…}, {…}, {…} ]
msg: Array []
page: "GuidelineInsertComponent"
status: "success"
<prototype>: Object { … }
результат верный,msg остается пустым массивом.
btw, console.log
в случае по умолчанию говорит, что в блоке прецедентов msg
является пустым массивом, это означает, что перед возвратом msg корректно.
Кстати, в состоянии входа в систему тоже есть массив msg, в моем дизайне используется state.msg для получения ответа сервера.
и я заметил, что oтолько сообщение вызывает эту проблему.state.guidelineManagement.data и state.guidelineManagement.guidelineData также являются массивами и остаются в том же состоянии до завершения действия.
Есть идеи, что является причиной этой проблемы?