Как вернуть в исходное состояние все реквизиты в редукторе Redux-React, кроме одного?

#javascript #reactjs #typescript

Вопрос:

Не могли бы вы помочь мне со следующим:

Мое начальное состояние таково:

 const initialState: IMovieState = {
  movie: {
    filmId: 0,
    posterUrl: '',
    ....other props,
};
 

Редуктор

 export const movieReducer = (state = initialState, action: MovieActions): IMovieState => {
  switch (action.type) {
    case MovieActionTypes.FETCH_MOVIE: {
      return { ...state, movie: action.payload };
    }
    case MovieActionTypes.RESET_MOVIE_STATE: {
      return initialState;
    }
    default:
      return state;
  }
};
 

Мне нужно сбросить все реквизиты в исходное состояние, кроме свойства PosterUrl. Как я могу это сделать? Не уверен, имеет ли это значение для решения моей проблемы, но я использую TS

Ответ №1:

Пожалуйста, используйте нижеприведенную строку

 case MovieActionTypes.RESET_MOVIE_STATE: {
  return {
      ...initialState, 
      movie: {
          ...initialState.movie, 
          posterUrl: state.movie.posterUrl
      }
  };
}