Это похоже на предыдущий вопрос , который я задавал ранее, но с тех пор я изменил архитектуру своего проекта, добавив Redux.
У меня есть компонент, который динамически генерирует раскрывающееся содержимое на основе отклика данных, который в данный момент поступает из приложения.
В одном из выпадающих меню есть выбор none, 1, 5, 13 items
. Исходя из того, какое число пользователь выбирает, второй раздел должен динамически отображать, показывая, что столько строк имеют собственный выпадающий список.
Проблема, с которой я столкнулся, заключается в том, что я изначально управлял этим поведением, используя локальные состояния и ловушки реакции С тех пор параметры выпадающего меню перенесены в хранилище, и я больше не могу добавлять поведение onChange к каждому уникальному параметру теперь, когда они генерируются как часть функции карты.
Вот оригинальный CodeSandbox для локального состояния:
И вот как выглядит мой текущий выпадающий список из моего приложения, теперь он читает из магазина:
<Select
onChange={e => {
props.updateCart(
{
lineOne: 'Thing#1',
lineTwo: 'addOns',
itemThree: 'Thing#3',
item:
parent.configurationItems[parseInt(e.target.value, 10)]
},
)
}}
>
{parent.configurationItems.map((obj, idx) => {
const { id, name } = obj
return (
<option
key={id}
value={idx}
>
{name}
</option>
)
})}
</Select>
</Col>