在componentDidUpdate或handleSubmit上使用Formik setFieldValue(错误:不是函数)

时间:2019-02-04 14:16:44

标签: javascript reactjs formik

我正在尝试使用formik操作setFieldValue。我在表单中有一个表单(它是一个表单,然后会打开一个具有不同表单的对话框,但是某些字段取决于在第一个表单中编写的内容)。

数据发送很好,我只是将其作为道具发送。...但是。.我试图使用setFieldValues来设置该表单中的某些隐藏字段(如无输入一样隐藏),但我似乎无法使其正常工作。

我尝试在componentDidUpdate中以this.props.setFieldValue的形式使用它,并且还尝试将setFieldValue传递给我的Submit函数,例如

onSubmit={(values, setFieldValue) => this.handleSubmit(values, setFieldValue)}

似乎没有任何作用。 setFieldValue总是抛出not a function

2 个答案:

答案 0 :(得分:0)

尝试this.props.form.setFieldValue

答案 1 :(得分:0)

检查功能周围的括号:

onSubmit={(values, {setFieldValue}) => [...]

请确保在甲酸标记后的参数声明中具有相似的synthax:

<Formik  ... >
    {({isSubmitting, setFieldValue}) => (
        <Form> ...