Что ж, происходит то, что вы печатаете весь массив, поэтому вместо того, чтобы получить желаемый результат одного из них, вы получаете сначала все одного типа, а затем все другие.
Один подход может быть:
</div>
{props.options.length === 0 && <p className="widget__message">Please add a Product to get started!</p>}
{
props.options.map((option, index) => (
<div key={option}>
<Option
optionText={option}
count= {index + 1}
handleDeleteOption={props.handleDeleteOption}
/>
<Option
colorText = {props.colors[index]}
count= {index + 1}
handleDeleteOption={props.handleDeleteOption}
/>
<Option
priceText = {props.prices[index]}
count= {index + 1}
handleDeleteOption={props.handleDeleteOption}
/>
</div>
))
}
</div>
Я сделал это во время написания, так что, возможно, я забыл некоторые скобки или скобки, но идея в том, чтобы только одна карта и внутри этой карты получал по одному элементу за каждую итерацию.
Это может быть многолучше всего, чтобы в массиве был объект с 3 свойствами, по одному для каждого типа (опция, цвет, цена), а затем передача object.option, object.color и object.price каждому компоненту Option.
В этом подходеЯ также не принимаю во внимание, что props.prices [index] или props.colores [index] могут не существовать, я не знаю, могло ли это произойти, это просто чтобы показать концепцию.