сделай setOpen(isOpen => !isOpen) ну и на будущее всегда когда тебе нужно использовать текущее состояние стейта - нужно делать так, иначе наткнешься что то что ты передаешь не имеет то значение которое ты ожидаешь
По моему у тебя срабатывает и в первый раз setOpen, но потом срабатывает setTitle и родитель перерисовывает этот компонент заново инициализируя open и setOpen. А во второй раз срабатывает потому что в этом случае setTitle устанавливает то же значение оно не меняется и ререндеринга не происходит
Зачем ты setOpen в рендере вызываешь?
Обсуждают сегодня