React 开发中表单库 Formik 的 side effect 应用

Formik 是一个能让我们在 React 中非常方便的构建表单的 wrapper。
Formik 的作者并不推荐通过它来写一些 side effect,但总有实际需求摆在那里,不做是不行的。
在 issue 中讨论过后,作者放出了一个 FormikEffect,可以让我们在表单更新时,进行一些其他的操作。
比如实际生活中有一个阶梯价格的概念,一定数量内,是一个价格,超过的部分,是另外一个价格。
有这样一个表单:

{
	count:"",
	moneyToBePaid:""
}

当 count 给定时,需要根据具体的 count 来算出总费用并填入表单内。
这个时候就用到了 Effect,根据 prevValues 和 nextValues 来进行计算,并对相应的字段 setField。

需求进一步改成,用户认识柜台的人,可以打折,需要自己填费用。
这个时候你会发现自动计算的字段的 setField,也是会触发 onChange 的…
但是通过魔改,一样可以实现,可以说非常骚了。

具体可以去看 Formik 源码,应该会更好理解。
本人陷于项目不能自拔,暂时不做深究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值