Я показываю всплывающее окно при нажатии на значок копирования. Когда я нажимаю значок копирования, я устанавливаю состояние «showPopup» в значение true. Моя функция рендеринга теперь видит, что это правда, и отображает всплывающее окно. Всплывающее окно автоматически закрывается, если я щелкаю снаружи где-либо еще.
Пока все хорошо.
Проблема в том, что у меня есть выпадающий список на том же экране со списком вариантов. Когда я щелкаю любой элемент в раскрывающемся списке, он также изменяет другую переменную в состоянии, которое вызывает повторный рендеринг.
Однако предыдущее состояние «showPopup» является истинным, а не ложным. Поэтому независимо от того, где я нажимаю на тот же экран, я всегда показываю всплывающее окно. Я хочу, чтобы он появлялся только тогда, когда я специально нажимал кнопку копирования.
Любая идея, как я могу это исправить, я попробовал componentDidUpdate следующим образом:
componentDidUpdate = (prevProps, prevState) => {
if (prevState.showPopup === true) {
this.setState({showPopup: false});
}};
Но это вызывает проблему, когда во второй раз я пытаюсь снова щелкнуть значок копирования. На этот раз всплывающее окно будет появляться только каждые 2 раза, когда я нажимаю значок копирования ...
есть идеи, как убедиться, что начальное состояние showPopup всегда сбрасывается в false?