Hello, c'est pas tres claire ce que tu veux faire quand je regardes ton code.
Dans ce composant tu passes en props myItems
<CardType
handleChooseCardAdditionalOption={ this.handleChooseCardAdditionalOption }
myItems={this.state.zeOrder.items}
/>
mais quand tu montre ton CardType tu utilises items. Est-ce que items correspond à myItems ?
{ items.map( (e, i) => { <== i items === myItems ?
return (
<>
<AdditionalOptionCard
itemId={i}
handleChooseAdditionalOption={ chooseCardAdditionalOption }
/>
</>
)
} ) }
Ensuite tu passes en props cette fonction
handleChooseCardAdditionalOption = (checked, index, itemId, cardTypeId) => {
console.log(itemId)
}
Pourquoi tu la modifie 2 fois ?
const chooseCardAdditionalOption = (checked, index, itemId) => {
this.props.handleChooseCardAdditionalOption(checked, index, itemId, cardType.card_id);
}
puis
handleChooseAdditionalOption = (e, index) => {
this.props.handleChooseAdditionalOption(e.target.checked, index, this.props.itemId);
}
Je capte pas pourquoi tu passes pas la fonction qu'il y a dans lecomposant parent ?
Je comprend pas non plus d'ou sort this.props.options dans le composant AdditionalOptionCard, parce qu'a aucun moment tu le passes en props
<AdditionalOptionCard
itemId={i}
handleChooseAdditionalOption={ chooseCardAdditionalOption }
/>
Et derniere chose dans le composant AdditionalOptionCard
tu passes cete fonction qui prend en second parametre un index visiblement
handleChooseAdditionalOption = (e, index) => {
this.props.handleChooseAdditionalOption(e.target.checked, index, this.props.itemId);
}
sauf que sur ton onChange tu fais ceci, tu passes un id en second parametre à la place d'un index.
onChange={ (e) => this.handleChooseAdditionalOption(e, item.option_id) }
Que fais tu du param checked dans ta fonction ?
Pourquoi tu met un name comme ceci name="order[additional_options][]" sur tes checkbox ?
Finalement si tu peux mettre un peu plus de code cela pourrai rendre plus compréhensible ce que tu essaie de faire.