我有一个使用Formik的编辑表单。如果图片字符串已更改,我需要上传新图像。我需要比较图片字段的 initialValues 与图片字段的 values ,以确定是否调用fileUpload函数上传图片并返回字符串uri >
如何进行onSubmit处理程序中的initialValues进行比较。我一直在网上搜索,发现关于这个主题的article,但是,作者正在使用redux并重新编写。就我而言,我使用的是graphql,没有使用任何状态管理库
在没有状态管理库的情况下是否仍然可以进行这种比较? n如何在onSubmit处理程序中访问initialValues?
formProps同时具有initialValues和值。 SubmitProps仅具有值,但没有initialValues,如果用户更改了字段
,我需要进行比较<Formik
initialValues={{
...getMusicById,
}}
onSubmit={(values, bag, ...submitProps) => {
console.log("@onSubmit ", values, bag, submitProps);
const {
session: { me }
} = this.props;
this._handleSubmit(values, bag, me);
}}
validationSchema={formValidateSchema}
render={({ isValid, isSubmitting, ...formProps }) => {
console.log("@formProps ", formProps);
return (
<React.Fragment>
<Form>
答案 0 :(得分:1)
在没有状态管理库的情况下是否仍然可以进行这种比较? n如何在onSubmit处理程序中访问initialValues?
不直接-易于使用的组件(<Formik/>
)总是有缺点。
您可以使用任何状态管理方法,并将initialValues
的值作为prop传递。
在文章<Formik/>
中嵌入了经过HOC增强的<FooForm/>
中。值存储在redux中,并作为props传递到<Formik />
您可以使用简单的类组件,并将其状态(或道具)作为initialValues
传递下来。在同一组件中定义的提交处理程序(也作为prop传递)将有权访问this.state
中的数据/对象。当然,您可以在功能组件中为此使用钩子-useState
。
您可以使用withFormik
HOC-props.initialValues
应该可用。