setState
приведет к re-render
компонента. Для каждого render
компонента следует вызывать getDerivedStateFromProps
. Вот как работает getDerivedStateFromProps
.
Вам следует подумать о том, как вернуть частичное состояние для слияния.
Без примера кода я не понимаю, что вы говорите или спрашиваете.
Ожидается, что getDerivedStateFromProps
будет вызываться после setState
, поскольку состояние, возвращаемое getDerivedStateFromProps
, основано как на текущем props
и на предыдущем state
. Итак, если состояние изменилось (вызовом setState
), возможно, что производное состояние также могло измениться (поскольку это комбинация props
и state
) .
Ранее мы не вызывали его снова, если props
не изменилось, но это поведение вызвало проблемы, и поэтому мы изменили его (исправили) в версии 16.4, как упоминалось в этом сообщении в блоге:
https://reactjs.org/blog/2018/05/23/react-v-16-4.html#bugfix -for-getdehibitedstatefromprops
Если вы хотите поделиться кодом и задать конкретный вопрос о том, почему запускается метод, один из нас может взглянуть. А пока я предполагаю, что на ваш вопрос дан ответ: smile:
setState
приведет кre-render
компонента. Для каждогоrender
компонента следует вызыватьgetDerivedStateFromProps
. Вот как работаетgetDerivedStateFromProps
.Вам следует подумать о том, как вернуть частичное состояние для слияния.
Спасибо
@bvaughn , спасибо за ответ