[在订单项级别(不是批处理订单项级别,只是主要的)更改“再次使用”复选框时,所有批处理订单项也会更改。
当在批次行项目级别更改“再次使用”复选框时,则仅影响一个批次行项目复选框。
{
/*Use Again*/
}
{
values.transactions.goodsMovements.transactionItems[index].transactionType ===
"2" &&
useAgain === 200 && (
<>
<td>
<MyCheckbox1
id={`transactions.goodsMovements.transactionItems[${index}].transactionLineItems[${i}].useAgain`}
name={`transactions.goodsMovements.transactionItems[${index}].transactionLineItems[${i}].useAgain`}
/>
{tlItems.expanded &&
tlItems.batchSplits.batchSplitLineItems &&
tlItems.batchSplits.batchSplitLineItems.length > 0 &&
tlItems.batchSplits.batchSplitLineItems.map((bd, j) => (
<div>
<MyCheckbox1
id={`transactions.goodsMovements.transactionItems[${index}].transactionLineItems[${i}].batchSplits.batchSplitLineItems[${j}].useAgain`}
name={`transactions.goodsMovements.transactionItems[${index}].transactionLineItems[${i}].batchSplits.batchSplitLineItems[${j}].useAgain`}
/>
</div>
))}
</td>
</>
);
}
我不知道您的代码中的MyCheckbox1
是什么。您需要进行3次更改才能满足您的要求。
checked
属性,以指示是否选中了该复选框。喜欢<MyCheckbox1
id=....
name=....
checked={IS_USE_AGENT_CHECKED}
/>
IS_USE_AGENT_CHECKED
是每个复选框的状态(父母和孩子均如此)。您需要像以下步骤一样在代码中处理值IS_USE_AGENT_CHECKED
。
onClick
事件,例如<MyCheckbox1
id=....
name=....
checked={IS_USE_AGENT_CHECKED}
onClick={FUNCTION_TO_HANDLE_THE_EVENT}
/>
我不知道您的MyCheckbox1
的事件名称,应该等同于的onChange
或onClick
,当复选框的状态更改时可以触发。在FUNCTION_TO_HANDLE_THE_EVENT
中,如果checked
状态为true,则将所有子级的IS_USE_AGENT_CHECKED
设置为true。如果为假,则将所有儿童的IS_USE_AGENT_CHECKED
设置为假。
onClick
事件,例如<MyCheckbox1
id=....
name=....
checked={IS_USE_AGENT_CHECKED}
onClick={FUNCTION_TO_HANDLE_THE_EVENT}
/>
在此FUNCTION_TO_HANDLE_THE_EVENT
中,更改当前项目的IS_USE_AGENT_CHECKED
。