#reactjs #redux #react-redux #state
#reactjs #redux #react-redux #состояние
Вопрос:
Я использую react-redux, и я пытаюсь очистить часть своего состояния redux при размонтировании компонента, это действительно работает, но проблема в том, что после очистки пользовательского профиля и монтирования следующего компонента он размонтируется, а затем монтируется снова.
useEffect(() => {
getProfileByUsername(match.params.username, user amp;amp; user.id);
return () => clearUserProfile();
}, [match.params.username])
Я вижу, что мое действие clear вызывается до того, как произойдет какое-либо монтирование следующего компонента, но данные не очищаются до первоначального монтирования, поэтому, как только оно очищается, оно запускает размонтирование, а затем повторно монтируется..
Я уверен, что это причина, потому что, если я удалю функцию clearUserProfile()
очистки, она монтируется только один раз.
Другие компоненты даже не используются userProfile
, и я могу обновлять состояние другими действиями без повторной визуализации, поэтому я не уверен, почему это происходит. Мне либо нужен способ предотвратить это, либо предотвратить маршрутизацию до полного завершения действия. Я использую react-router-dom.
Какова была бы правильная стратегия для очистки части моего состояния при отключении компонента?
Комментарии:
1. Если я прав, он будет отображаться как минимум два раза, поскольку useEffect запускается после того, как компонент отрисовал один раз
2. Если я удалю функцию очистки clearUserProfile, следующий компонент монтируется только один раз, поэтому я уверен, что это является причиной. Я также вижу, что данные не очищаются до второго монтирования.