我目前正在尝试使用 React 和 Material UI 构建一个表单,我的最终有效负载必须如下所示:
{
title: title,
quadrants: {
0: { name: quadrantOne },
1: { name: quadrantTwo },
2: { name: quadrantThree },
3: { name: quadrantFour }
}
}
我的表单的相应部分(包括初始值)的结构如下:
const initialValues = {
title: '',
quadrants: {},
};
const [values, setValues] = useState(initialValues);
const handleInputChange = (e: any) => {
const { name, value } = e.target;
setValues({
...values,
[name]: value
});
};
return (
<Form>
<Grid item xs={12} sm={12}>
<Input
name="title"
label="Title"
value={initialValues.title}
onChange={handleInputChange}
/>
</Grid>
<Grid item xs={12} sm={6}>
<Input
name="quadrant-one"
label="Quadrant 1"
value={initialValues.quadrants}
onChange={handleInputChange}
/>
</Grid>
<Grid item xs={12} sm={6}>
<Input
name="quadrant-two"
label="Quadrant 2"
value={initialValues.quadrants}
onChange={handleInputChange}
/>
</Grid>
</Form>
)
这样,我的输入字段看起来像这样,因此我无法在字段中输入任何内容::
但是,如果我在字段中输入一些内容(该条目不可见),那么我会得到以下有效负载:
{
title: "Test"
quadrants: {}
quadrant-one: "[object Object]"
quadrant-two: "[object Object]"
}
这些条目没有嵌套在“象限”对象中,但条目以相应表单元素的名称出现在有效负载中(如象限一、象限二……)。
我在这里做错了什么,我该如何解决这个问题?