#javascript #reactjs #refresh #react-functional-component
Вопрос:
У меня есть три файла: App.js, A. js и B. js. A и B являются функциональными компонентами, которые используются в App.js. В A. js у меня есть функция foo(), и в этой функции я хочу заставить B. js выполнить повторную визуализацию.
Есть идеи, как это сделать?
Я погуглил эту проблему и обнаружил, что могу установить состояние в B. js и обновить это состояние. Но как я могу обновить это внешнее состояние из foo() в A. js?
Комментарии:
1. вам нужно использовать
shared state and functions
, передавать функцию и состояние вA
иB
изApp
и обновлять состояние с помощью переданной функцииA
, которая обновит общее состояние и, в свою очередь, повторно отобразитB
его .
Ответ №1:
Имейте а state
в своем App
, затем передайте его state
в B
и setState
действуйте A
как props
. Затем всякий раз, когда вы обновляете состояние с помощью функции setState из компонента A
, это приведет к повторному отображению компонента B
. Это происходит из-за повторного рендеринга триггера react при каждом обновлении реквизита.
Ответ №2:
Почему вы хотите перерисовать его? Если вы передадите реквизиты компоненту, он автоматически перерисовается, если эти реквизиты изменятся.
Комментарии:
1. У меня есть функция в моем файле A. js, и B. js должен повторно отображаться ВО ВРЕМЯ выполнения функции (внутри цикла). Это не работает, только повторно отображается, когда функция завершена.
2. Мне нужно увидеть фактический код, чтобы помочь вам в дальнейшем. Я не уверен, что понимаю, чего вы хотите достичь