Если каждая нода раскрывается независимо, храните isOpen внутри её экземпляра или в наборе открытых id; для одного открытого узла достаточно openedId.
Как можно решить проблему с общим состоянием isOpen для нескольких нод? Есть ещё более красивый вариант?
Если каждая нода раскрывается независимо, храните isOpen внутри её экземпляра или в наборе открытых id; для одного открытого узла достаточно openedId.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Если каждая нода раскрывается независимо, храните isOpen внутри её экземпляра или в наборе открытых id; для одного открытого узла достаточно openedId.
Локальное состояние проще, когда раскрытие не нужно контролировать извне. Set идентификаторов удобен для общего управления и сохранения настроек; openedId описывает accordion без множества конфликтующих флагов. Используйте стабильные ключи компонентов. Без исходной структуры нельзя выбрать единственный «красивый» вариант — сначала уточните, допускается ли несколько открытых нод.