我正在尝试通过参考此代码https://codesandbox.io/s/km2n35kq3v使用 react-final-form 创建向导表单。对于我的用例,我需要在表单字段中使用一些 mutator 函数。这个例子说明了如何做到这一点 - https://codesandbox.io/s/kx8qv67nk5?from-embed。当我使用向导表单而不是单页表单时,我不确定如何在表单步骤中访问 mutator 函数。
我尝试通过修改<Form>
由 Wizard.js 呈现的组件以传递突变器来组合这两个示例。但是,我无法在向导表单页面中访问这些变量。
在 Wizard.js 中
return (
<Form
mutators={{
// potentially other mutators could be merged here
...arrayMutators,
}}
render={({
handleSubmit,
submitting,
values,
pristine,
invalid,
form: {
mutators: {push, pop, remove},
},
}) => {
return (
<form onSubmit={handleSubmit}>
另一个文件 index.js
<Wizard
initialValues={{ employed: true, stooge: "larry" }}
onSubmit={onSubmit}
>
<Wizard.Page>
<FieldArray name="customers">
{({ fields }) =>
fields.map((name, index) => (
<div key={name}>
<label>Cust. #{index + 1}</label>
<Field
name={`${name}.firstName`}
component="input"
placeholder="First Name"
/>
<span
onClick={() => fields.remove(index)}
style={{ cursor: "pointer" }}
>
❌
</span>
</div>
))
}
</FieldArray>
</Wizard.Page>
</Wizard>
它出错了 - 在 index.js 中删除未定义