Обновите функциональный компонент с другого

#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. Мне нужно увидеть фактический код, чтобы помочь вам в дальнейшем. Я не уверен, что понимаю, чего вы хотите достичь