如果在订单项级别(不是批处理订单项级别,只是主要选项)更改了复选框,那么所有批处理订单项也都更改了

问题描述 投票:2回答:1

[在订单项级别(不是批处理订单项级别,只是主要的)更改“再次使用”复选框时,所有批处理订单项也会更改。

当在批次行项目级别更改“再次使用”复选框时,则仅影响一个批次行项目复选框。

{
  /*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>
      </>
    );
}

result image

javascript reactjs
1个回答
0
投票

我不知道您的代码中的MyCheckbox1是什么。您需要进行3次更改才能满足您的要求。

  1. 为子复选框/子项的父复选框和子复选框显式添加checked属性,以指示是否选中了该复选框。喜欢
<MyCheckbox1
  id=....
  name=....
  checked={IS_USE_AGENT_CHECKED}
/>

IS_USE_AGENT_CHECKED是每个复选框的状态(父母和孩子均如此)。您需要像以下步骤一样在代码中处理值IS_USE_AGENT_CHECKED

  1. 处理父项复选框的onClick事件,例如
<MyCheckbox1
  id=....
  name=....
  checked={IS_USE_AGENT_CHECKED}
  onClick={FUNCTION_TO_HANDLE_THE_EVENT}
/>

我不知道您的MyCheckbox1的事件名称,应该等同于的onChangeonClick,当复选框的状态更改时可以触发。在FUNCTION_TO_HANDLE_THE_EVENT中,如果checked状态为true,则将所有子级的IS_USE_AGENT_CHECKED设置为true。如果为假,则将所有儿童的IS_USE_AGENT_CHECKED设置为假。

  1. 处理子级复选框的onClick事件,例如
<MyCheckbox1
  id=....
  name=....
  checked={IS_USE_AGENT_CHECKED}
  onClick={FUNCTION_TO_HANDLE_THE_EVENT}
/>

在此FUNCTION_TO_HANDLE_THE_EVENT中,更改当前项目的IS_USE_AGENT_CHECKED

© www.soinside.com 2019 - 2024. All rights reserved.