我正在使用 Formik 和材质 UI 构建一个窗体。
我通过以下方式利用 Formik 组件:
我的输入组件 :
const Input = ({ field, form: { errors } }) => {
const errorMessage = getIn(errors, field.name);
return <TextField {...field} />;
};
向下到我的渲染形式,这是我是如何做到的:
<Field
component={Input}
name={`patients[${index}].firstName`}
/>
问题在于材质 UI 使用标签属性在输入字段上显示标签,因此标签应该是传递给 的 prop。如果我将它“硬编码”到我的“输入”组件中,它就会起作用,这违背了使用可重用合成的目的。
所以这有效但不方便:
const Input = ({ field, form: { errors } }) => {
console.log(field.label);
const errorMessage = getIn(errors, field.name);
return <TextField {...field} label="first name" />;
};
我希望的是使用它上面的一个级别,例如:
<Field
component={Input}
name={`patients[${index}].firstName`}
label="first name"
/>
但以上内容不起作用,因为“标签”没有被Formik识别为道具(或者这就是我对它的理解,但我可能是错的)。
有没有人遇到过这个问题?
我知道我可以使用我的“姓名”值作为标签,但这并不是很好的用户体验,因为它会给我留下一个标签,如“患者[0]名字”啊哈
人到中年有点甜
慕哥9229398
相关分类