React-Semantic-UI, Accordion, activeIndex с эксклюзивом = {false} и без него. Работает и не работает

ожидаемый результат

Мне нужна кнопка «закрыть все». Но используя exclusive={false}, потому что мне нужно открыть много строк. Это не работает.

Фактический результат

Просто exclusive={true} работает.

Версия

0.77.2

Прецедент

https://codesandbox.io/s/k2wlkoz5wr


person Community    schedule 16.01.2018    source источник


Ответы (1)


Проблема в том, что он перезаписывается вашим реквизитом activeIndex.

Обновление: вы можете попробовать этот ветвь вашего примера.

Идея состоит в том, что если вы используете exclusive={false}, вам нужно передать activeIndex как массив. Затем все, что вам нужно сделать, это изменить способ обновления индексов в обработчиках событий.

person Daniel Andrei    schedule 16.01.2018
comment
Это работает, я просто не обновил ваше состояние, чтобы оно было массивом индексов. - person Daniel Andrei; 16.01.2018
comment
как? Что ты имеешь в виду? - person ; 16.01.2018
comment
@JohnSam Итак, вы можете расширить несколько элементов, вам просто нужно по-разному удерживать свое состояние. Вместо активного индекса у вас будет массив активных индексов... [0,1,2] вместо 0 - person Daniel Andrei; 16.01.2018
comment
да, но это не работает, потому что с активным индексом типа массив не работает эксклюзив = ложь! - person ; 16.01.2018
comment
@JohnSam Я обновил свой ответ. Теперь это должно работать. - person Daniel Andrei; 17.01.2018