反应最终形式条件形式字段在渲染时未获取值

时间:2019-09-12 08:24:51

标签: reactjs react-final-form final-form

我有一个要根据其他字段的值呈现的表单中的字段。

我监听该字段的“ OnChange”事件,然后触发新字段的form.change(尚未呈现),但在呈现时将无法获取值。

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

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

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

1 个答案:

答案 0 :(得分:0)

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

但是当values.meterType!==“ heat”

时,您的字段scaleFactor将被删除

{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>