1

我有一个表单字段,我想根据另一个字段的值来呈现。

我监听该字段的“OnChange”事件,然后触发新字段的form.change(尚未渲染),但在渲染时它不会获得值。

我为这个问题创建了一个沙箱:https ://codesandbox.io/embed/priceless-keldysh-gfd3b

预期结果:选择“加热”时,应显示比例因子并获得值“1”

解决这个问题的最佳做法是什么?假设表单中有很多依赖项。

4

1 回答 1

0

由于订阅<Form />需要可见<Field />

但是当 values.meterType !== "heat" 时,您的字段 scalingFactor 将被删除

{values.meterType && values.meterType === "heat" && (
  <Field name="scalingFactor" component="input" />
)}

您需要将代码更改如下:

<Field name="scalingFactor">
  {({ input }) => {
    return (
      <React.Fragment>                    
        {values.meterType && values.meterType === "heat" &&
          <input {...input} />
        }
      </React.Fragment>
    );
  }}
</Field>
于 2019-10-03T09:36:37.710 回答