【发布时间】:2020-12-28 13:35:44
【问题描述】:
在我的反应组件中,我有这两个初始值
const [initialValues, setInitialValues] = useState({
name: 'Tom',
age: 85,
});
我有一个文本字段来更改名称字段的值。而且我有一个按钮可以更改年龄字段。
如果我输入姓名为“Jerry”并按该按钮更新年龄,它会将年龄更新为 75 岁并再次将姓名“Jerry”重置为“Tom”。
在文本框中输入 Jerry 并点击按钮,看到它变为“Tom”
我该如何解决这个问题?
任何帮助! 提前致谢! =)
【问题讨论】:
-
由于第 26 行,名称再次重置为“Tom”:
setInitialValues({ ...initialValues, age: 75 });。initialValues是{ name: 'Tom', age: 85 },因此您使用 spread(...) 运算符传播initialValues,仅覆盖age属性,而name属性保持为“Tom”。 -
@Kapobajza 我该如何解决这个问题?
-
我不太确定你想要达到什么目的?您要提交表单,并且输入字段的值应该与您提交的相同?
-
我有初始值,当用户输入一些字段时,我想使用 API 调用更新一些初始值。 @Kapobajza
-
试试这个:只需将第 26 行从
setInitialValues({ ...initialValues, age: 75 });更改为:setInitialValues({ name: /* get the value of the name text field */, age: 75 });
标签: javascript reactjs formik formik-material-ui