Принудительно обновить дочерний компонент при изменении родительского компонента? - PullRequest
0 голосов
/ 12 июля 2019

Я использую библиотеку. В библиотеке есть некоторые Props. Но, похоже, библиотека помешала обновлению при изменении Props. Как это:

shouldComponentUpdate(nextProps, nextState){
    return JSON.stringify(nextState) !== JSON.stringify(this.state)
}

Итак, библиотека просто рендерится один раз, когда componentDidMount. Как я могу принудительно обновить или ре-рендеринга или что-то, когда Props изменилось? Большое вам спасибо

Ответы [ 2 ]

1 голос
/ 12 июля 2019

Вы имеете дело с неконтролируемым компонентом, что означает, что вы не можете изменить его значение, но вы можете перемонтировать его, изменив его key. Тем не менее, он может внести некоторые изменения в state перемонтированного компонента, но иногда можно будет сохранить состояние дочернего элемента в state родителя и передать эти данные перемонтированному компоненту как initialValue или что бы там ни было.

0 голосов
/ 12 июля 2019

Этот код означает, что ваш компонент будет перерисован только после изменения состояния.

Так что, если вы хотите перерисовать, когда ваши реквизиты изменены, просто удалите shouldComponentUpdate.Потому что при смене реквизита очень важно перерисовываться.

...