Я использую Redux в своем проекте впервые.У меня есть несколько редукторов и и действий.Когда отправляется первое действие, состояние изменяется.Это выглядит хорошо.После отправки второго действия состояние снова изменяется, но предыдущие изменения удаляются.Я имею в виду, что при отправке 'FETCH_COMPANY_INFORMATIONS' companyName изменяется, и companyDesc устанавливается на начальное значение.Затем отправляется «FETCH_INITIAL_MEMBER» и удаляется companyName, но companyDesc все еще там, и полезные нагрузки членов также изменяются.В чем моя ошибка?Благодарю.
Я пробовал много способов решить эту проблему, но все еще продолжаю.Я проверяю это на Redux DevTools.
memberReducer
const initialState = {
username: '',
companyId: '',
isAdmin: '',
photo: '',
};
export default (state = initialState, action) => {
switch (action.type) {
case FETCH_INITIAL_MEMBER:
return {
...state,
username: action.payload.username,
companyId: action.payload.companyId,
isAdmin: action.payload.isAdmin,
};
default:
return state;
}
};
companyReducer
const initialState = {
companyName: 'companyName',
companyDesc: 'companyDesc',
};
export default (state = initialState, action) => {
switch (action.type) {
case FETCH_COMPANY_INFORMATIONS:
return {
...state,
companyName: action.payload.companyName,
};
default:
return state;
}
};
memberAction
const fetchInıtıalMember = async muuid => {
axios
.get(`/api/member/${muuid}`)
.then(response => {
const username = response.data.mname;
const isAdmin = response.data.misAdmin;
const companyId = response.data.cid;
store.dispatch({
type: FETCH_INITIAL_MEMBER,
payload: {
username,
isAdmin,
companyId,
},
});
})
.catch(error => {});
};
companyAction
const fetchCompanyInformations = () => {
store.dispatch({
type: FETCH_COMPANY_INFORMATIONS,
payload: { companyName: 'dispacthedCompanyName' },
});
};
Редактировать: Код выше верен.Моя ошибка в импортировании констант.Эта реализация Redux работает хорошо.Я хранил все константы типов действий в файле types.js.Я импортирую константы этого типа в другие файлы неправильно.После его изменения моя проблема решена.