[英]How to use React NumberFormat package in conjunction with Formik?
我有一个 Formik 字段,我想与 React NumberFormat npm package 一起使用。 这是我在 Formik 中的 FormGroup:
//...Other code
<Formik
initialValues={this.state.diamondPurchaseGstDetails}
enableReinitialize={true}
onSubmit={this.formSubmit}
>
{({ values, setFieldValue }) => (
<Form>
<FormGroup>
<Field
className="form-control"
name="CreditDays"
type="text"
component={ParseNumber}
></Field>
<Label>Credit Days</Label>
</FormGroup>
</Form>
//...Other code
我传递的组件是我的自定义组件ParseNumber
,它使用 NumberFormat package。 这是代码:
import React from 'react';
import NumberFormat from 'react-number-format';
function ParseNumber() {
return (
<NumberFormat decimalScale={0} allowNegative={false}/>
)
}
export default ParseNumber;
现在,我的问题是如何将输入字段值绑定到values
? 我尝试了类似value={values.CreditDays}
的方法,但似乎没有用。
编辑:这是有效的代码框链接: 代码框
Field
组件和useField
钩子都分别提供有用的道具和值。 即一个名为field
的 object,它包含name
、 value
、 onChange
和onBlur
。 这些可以分布在您尝试绑定到 formik 的任何组件上
使用钩子( useField
)是我的首选方法
import { useField } from 'formik'
function NumberFieldHooks(props) {
const { name } = props
const [field] = useField(name)
return <NumberFormat {...field} decimalScale={0} allowNegative={false}/>
}
function NumberField({ field }) {
return <NumberFormat {...field} decimalScale={0} allowNegative={false} />;
}
// later in the formik component
return (
<Formik {...props}>
<Form>
{/* using the hooks form */}
<NumberFieldHooks name="CreditDaysHooks" />
{/* using the component prop */}
<Field name="CreditDays" component={NumberField} />
</Form>
</Formik>
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.