Я хочу реализовать Редактирование пользователя с помощью Redux в моем проекте.Я создал редуктор EDIT_USER, который работает нормально.Я могу запустить соответствующее действие и этот редуктор из любого места внутри приложения.
Скажем, я хотел изменить цвет заголовка (компонент заголовка действительно высок в дереве компонентов) с кнопки внутри компоновки карты (которая действительно низка).в дереве компонентов).Оно работает.Однако всякий раз, когда я обновляю страницу, цвет заголовка - это цвет, который был при последнем входе пользователя в систему!Это мой редуктор SET_CURRENT_USER:
case SET_CURRENT_USER:
return {
isAuthenticated: Object.keys(action.user).length > 0,
user: action.user
};
Это в App.js, который запускает редуктор SET_CURRENT_USER через действие setCurrentUser:
if (localStorage.jwtToken) {
setAuthorizationToken(localStorage.jwtToken);
try {
store.dispatch(setCurrentUser(jwtDecode(localStorage.jwtToken)));
}
catch (e) {
store.dispatch(setCurrentUser({}));
}
}
Мое ожидаемое поведение следующее.
1. Пользователь входит в систему, заголовок синий (цвет по умолчанию).---- OK
2. Пользователь меняет цвет заголовка на зеленый через кнопку, которая запускает редуктор EDIT_USER.---- ОК
3. Сразу же заголовок меняется на зеленый.--- ОК
4. Я обновляю страницу и заголовок все еще зеленый.---- НЕ ОК (он отображается синим цветом, потому что это был цвет, когда пользователь последний раз входил в систему).
5. Когда я выхожу и снова вхожу, заголовок становится зеленым.---- Хорошо (это ожидается, но пункт 4 - это главная проблема!)
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать!Большое спасибо.