Скажем, у меня есть функциональный компонент презентации React, например:
const Functional = (props) => {
// do some stuff
return (
<div>
// more HTML based on the props
</div>
);
}
Functional.propTypes = {
prop1: React.PropTypes.string.isRequired,
prop2: React.PropTypes.string.isRequired,
// ...
};
Если я использую Redux и следую шаблону компонента контейнера, как лучше всего отобразить динамическое количество этих <Functional/>
компонентов внутри компонента-оболочки на основе элементов внутри массива (который находится внутри моего состояния Redux)?
Например. Мое состояние Redux может выглядеть так:
{
functionalItems: [
{
prop1: 'x1',
prop2: 'y1',
// ...
},
{
prop1: 'x2',
prop2: 'y2'
},
// ... more items
],
// ...
}
Таким образом, каждый элемент в массиве functionalItems
должен соответствовать компоненту <Functional/>
, и все они отображаются рядом друг с другом.
Это второй раз, когда я сталкиваюсь с этой проблемой, поэтому я надеюсь, что она достаточно распространена, чтобы найти хорошее решение.
Я опубликую решения, которые я могу придумать (но которые имеют нежелательные черты), как ответы на этот вопрос.