Javascript 以动态形式计算总量-蚂蚁设计反应

Javascript 以动态形式计算总量-蚂蚁设计反应,javascript,reactjs,antd,Javascript,Reactjs,Antd,我在Ant Design中有一个动态表单,我可以: 在某些输入中设置价格和数量。 创建新行 提交此代码后,我能够访问行中的所有值: const onFinish = values => { console.log("Received values of form:", values); }; 但我想从输入中获取每个值,得到总价格*数量,并将其设置为总输入 我从这个问题中看到了基本反应的解决方案。这个答案表明您需要使用state并使用onChange事件,然后从那里开始工作

我在Ant Design中有一个动态表单,我可以:

在某些输入中设置价格和数量。 创建新行 提交此代码后,我能够访问行中的所有值:

  const onFinish = values => {
    console.log("Received values of form:", values);
  };
但我想从输入中获取每个值,得到总价格*数量,并将其设置为总输入

我从这个问题中看到了基本反应的解决方案。这个答案表明您需要使用state并使用onChange事件,然后从那里开始工作,但我真的不知道如何翻译这个答案,因为我不知道如何从Ant Design中的每一行访问状态

您可以在此处看到我的代码:


您可以利用表单组件上的onValuesChange事件处理程序以及Form.useForm钩子提供的表单实例方法来计算派生值

请参见沙盒示例:

const ItemForm==>{ const[form]=form.useForm const onFinish=值=>{ console.log“接收的值的形式:”,值 } const handleTotal=\uu,value=>{ const rowsCopy=[…values.rows] values.rows.forEachfieldGroup,索引=>{ 如果fieldGroup&&fieldGroup.quantity&&fieldGroup.price{ fieldGroup.total=fieldGroup.quantity*fieldGroup.price 行索引,1,字段组 console.log'fieldGroup',fieldGroup 控制台。记录“RowScope”,RowScope form.setFieldsValue{rows:rowsCopy} } } } 回来
谢谢,HandletTotal的第一个参数是什么?为什么需要复制这部分中的行RowScope.spliceindex,1,fieldGroup?第一个参数是changedValues,基本上只是表单上更改的最后一个值。至于RowScope,为了方便起见,拼接步骤是替换已编辑的表单组{count:XX,price:XX,total:undefined}与{count:XX,price:XX,total:computed_total}一起使用。