Я создал простое выпадающее меню с использованием перехватчиков React. Он работает так, как я хочу, с одним исключением - он сразу открывает все выпадающие меню. Это имеет смысл, учитывая, что я использую одно состояние, которое я использую для всех раскрывающихся экземпляров:
const [open, setOpen] = useState(false)
Затем я использую onClick (и onBlur), чтобы установить состояние, когда кто-то нажимает на раскрывающееся меню:
onClick={() => setOpen(state => !state)}
onBlur={() => setOpen(false)}
Когда open
установлен на true
, раскрывающееся меню установлено на display: block;
. Когда оно ложно, оно установлено на display: none;
Это установлено в css (с использованием стилизованных компонентов).
Так что все это прекрасно работает для одного выпадающего меню - проблема в том, каждый экземпляр выпадающего меню связан с состоянием open
. Это означает, что если для open установлено значение true, то в каждом раскрывающемся меню отображается - false, ни одно из них не отображается.
Как изменить раскрывающееся меню, чтобы можно было переключать только раскрывающееся меню, в котором щелкают ?
Спасибо.