Имеет ли значение возвращать только измененные атрибуты состояния в getDerivedStateFromProps ()? - PullRequest
0 голосов
/ 19 сентября 2018

Я знаю, что в React 16 новый метод жизненного цикла getDerivedStateFromProps () Я должен вернуть null, если не нужно ничего менять в состоянии, но меня интересует случай, когда мне все равно нужно обновить состояние, ноколичество измененных атрибутов состояния может варьироваться.Имеет ли значение, если я добавлю лишние атрибуты, которые не изменились в возвращаемом объекте?

Другими словами, лучше:

static getDerivedStateFromProps(nextProps, prevState){
  const foo = /* .. some calculation from props here */
  const bar = /* .. some calculation from props here */
  if (foo === prevState.foo && bar === prevState.bar) {
    return null;
  }
  return {
    foo,
    bar
  };
}

или мне лучше ограничить суммуатрибутов в возвращаемом объекте после проверки, что они все равно не изменились:

static getDerivedStateFromProps(nextProps, prevState){
  const foo = /* .. some calculation from props here */
  const bar = /* .. some calculation from props here */
  if (foo === prevState.foo && bar === prevState.bar) {
    return null;
  }
  const newState = {};
  if (foo !== prevState.foo) {
    newState.foo = foo;
  }
  if (bar !== prevState.bar) {
    newState.bar = bar;
  }
  return newState;
}
...