为了账号安全,请及时绑定邮箱和手机立即绑定

我可以在 onSubmit 运行之前访问 Formik 中的值吗?

我可以在 onSubmit 运行之前访问 Formik 中的值吗?

杨__羊羊 2022-06-16 17:20:06
我正在尝试对用户输入的值进行一些数学运算<Form>    <label htmlFor={`price${props.id}`}>Price</label>       <Field          name={`price${props.id}`}          type="text"       />       <ErrorMessage name={`price${props.id}`} />       <span> </span> //Where I want to display value      ...这就是我使用 Formik 的方式。Form 只是嵌套在 Formik 中:<Formik          initialValues={{            [`price${props.id}`]: '',}}          onSubmit={(values, { setSubmitting }) => {            setTimeout(() => {              alert(JSON.stringify(values, null, 2))              setSubmitting(false)          }, 400)}}>    <Form>     ....    </Form></Formik>
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

Formik 接受两种类型的孩子:

  1. 反应节点

  2. 返回 React 节点的函数

目前您正在将一个 React 节点传递给 Formik (#1)。

为了访问values,您需要将子项更改为一个函数(#2),该函数称为渲染道具。

然后可以像这样访问值:

<Formik 

  initialValues={/* ... */} 

  onSubmit={/* ... */}

>

  {props => (

    <form>

      {/* here we can access props.values */}

    </form>

  )}

</Formik>

props可以在此处找到包含内容的完整列表。


查看完整回答
反对 回复 2022-06-16
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

<Formik>可以提供一个子函数,允许您访问它的所有道具,包括当前values-


<Formik>

  {{ values } => (

    <Form>

      <label htmlFor={`price${props.id}`}>Price</label>

      <Field

        name={`price${props.id}`}

        type="text"

      />

      <ErrorMessage name={`price${props.id}`} />

      <span>

        // will show the current value, or you can do calculations

        {values[`price${props.id}`]}

      </span>

    </Form>

  )}

</Formik>


查看完整回答
反对 回复 2022-06-16
  • 2 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号