Теперь я понимаю, что есть похожие вопросы здесь и здесь но они дали мне только половину ответа,
По сути, то, что происходит в моем редуктореУ меня есть метод обновления, подобный так:
import * as UserActions from '../actions/user.actions';
import { UserDto } from '@shared/service-proxies/service-proxies';
export function userReducer(state: UserDto[] = null, action:
UserActions.Actions) {
switch (action.type) {
case UserActions.SET_USERS:
return action.payload;
case UserActions.UPDATE_USER:
if (state === null) { state = []; }
let index = state.findIndex(x => x.id === action.payload.id);
if (index !== -1) {
state[index] = action.payload;
} else {
state.push(action.payload);
}
return state;
default:
return state;
}
}
теперь происходит вызов обновления, меняющего состояние и возвращающего новое состояние, но не вызывающего мою подписку о состоянии, теперь из других вопросов, которые я могуЯ понимаю, это потому, что «технически» это один и тот же объект состояния, только с измененными определенными объектами. Как при таких обстоятельствах я могу активировать свою подписку?
Я попытался создать новую переменную, подобную этой, и затем вернуть ее, но он все еще думает, что это тот же объект
let newState = state;
return state
что было бы лучшим решением здесь ??