Повторно визуализировать компонент React и отображать новые данные при изменении данных в MongoDB

Мое приложение React использует модальное окно для создания, обновления и удаления данных, полученных из mongodb.

Это моя структура компонентов:

index.js

  • выполнение вызова fetch для извлечения данных
  • передача данных в качестве реквизита компоненту администратора (компонент администратора — это маршрут)

компонент администратора

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

модальный компонент

  • создавать/обновлять/удалять данные с помощью формы и выполнять вызов выборки

Я хочу, чтобы компонент администратора обновлялся и отображал созданные/обновленные/удаленные данные сразу после внесения изменений в модальное окно.

Я знаю, что обычно вы бы отображали данные как состояние, а затем изменяли бы это, чтобы обновить компонент и показать новые данные. В моем случае эти данные передаются в качестве поддержки компоненту администратора. из index.js, который извлекает данные. Я подумал, что другим потенциальным способом обновления компонента будет создайте хук состояния isUpdated и перейдите в модальное окно и переключите его значение, но это, похоже, не сработало.

Должен ли index.js сделать вызов? В идеале вы должны убрать как можно больше логики из index.js и переместить ее в соответствующие компоненты. Вы можете передавать реквизиты из admin в modal, а затем modal обновлять реквизиты после вызовов API. Подобно тому, как вы передаете свойство, вы можете передать функцию от родителя к дочернему элементу, который изменяет ее.

Brice Frisco 18.03.2022 03:46
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
36
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Вы можете использовать потоки для получения обновлений в вашей базе данных. Есть страница с хорошим туториалом:

https://pusher.com/tutorials/mongodb-change-streams/

Ответ принят как подходящий

Это имело довольно простое решение. Я смог решить эту проблему, установив данные, переданные в качестве реквизита, компоненту администратора в хуке состояния, а затем передайте переменную и функцию установки модальному модулю. В модальном режиме создайте новый объект с данными, собранными из формы, и используйте функцию установки, чтобы поместить новый объект данных в массив хука, и я получил желаемый результат. Спасибо и другим ответившим.

Другие вопросы по теме