reactjs - 如何在 formik 中使用反应数字格式
问题描述
我的formik表格是这样的
const NewProduct = ({}) => {
const validate = (values) => {
const errors = {}
if (!values.title) {
errors.title = 'Required'
}
return errors
}
const formik = useFormik({
initialValues: {
title: '',
price: '',
},
validate,
onSubmit: (values) => {
alert(JSON.stringify(values, null, 2))
},
})
return (
<div className="newProductComponent">
<form onSubmit={formik.handleSubmit}>
<label>title</label>
<input
type="text"
id="title"
name="title"
onChange={formik.handleChange}
value={formik.values.title}
/>
{formik.errors.title ? (
<div className="error">{formik.errors.title}</div>
) : null}
<NumberFormat
value={formik.values.price}
thousandSeparator={true}
onValueChange={(values) => {
const { formattedValue, value } = values
}}
/>
</form>
</div>
)
}
如何获得该表单中的数字格式组件以与 formik 一起使用?
解决方案
您可以使用useField
和设置值useFormikContext
例子:
const [field, meta] = useField('price');
const { setFieldValue } = useFormikContext();
const isError = meta.touched && Boolean(meta.error);
<NumberFormat
value={formik.values.price}
thousandSeparator={true}
onValueChange={(values) => {
const { formattedValue, value } = values
setFieldValue(field.name, formattedValue)
}}
/>
{isError && <div className="error">{meta.error}</div>}
推荐阅读
- javascript - 根据“模板”中定义的顺序将属性添加到 JSON 位置
- javafx - 监听 ObservableList 的单个元素的删除
- ios - 根据索引项的单元格从数组中获取数据
- python - Python 导入错误在没有 sudo 权限的 Centos 上没有名为 _ssl 的模块
- aws-glue - 如何自定义 AWS Glue 作业的作业 ID?
- angular - 启动角度项目时错误连接被拒绝
- android - 如何在animated.ScrollView中使用带有粘性标题的FlatList
- sql - SemanticException [错误 10085]:不支持使用 LATERAL VIEW 连接 'id'
- python - 套接字创建速度差异巨大 Python3.7/Python2.7
- xamarin - 如何在 xamarin 表单的按钮内添加不同类型的 TextSize?