Как я могу передать объект в атрибут объекта? - PullRequest
0 голосов
/ 06 января 2019

У меня есть этот код в редукторе:

export const getSerieSuccess = (state = INITIAL_STATE, action) => {
   return {
      ...state,
      isLoadding: false,
      serie: action.serie   //action.serie is a object with id, name, genre e status
   }
}

Я хочу знать, если я делаю serie: action.serie, я передаю значение или ссылку. Я сделал это так:

export const getSerieSuccess = (state = INITIAL_STATE, action) => {
const serie = {...action.serie};
   return {
      ...state,
      isLoadding: false,
      serie
   }
}

Как лучше работать с функциональным программированием?

1 Ответ

0 голосов
/ 07 января 2019

Вы можете использовать оба варианта, если на полезную нагрузку действия больше не ссылаются и не будут видоизменять / изменять.

Good

store.dispatch(new SomeAction({a: b: {
  c: 1234
}));

Плохо (потому что вы передаете ссылку и впоследствии меняете ее):

let value = new SomeAction({a: b: {
  c: 1234
});
store.dispatch(value);
value.a.b.c = 44543; // bad

setTimeout(_ => (value.a.b.c = 5555), 5000); // bad

Примечание : если вы хотите действительно сохранить его (без передачи ссылок), вы можете сделать копию переданного значения внутри действия.

...