【发布时间】:2020-11-06 10:36:08
【问题描述】:
我创建了一个codesandbox,它显示了 3 个表单字段:名字、姓氏和姓名。
我试图让 name 字段显示 ${firstName} ${lastName} 直到用户自己修改 name 字段,因此条件 name === firstName + ' ' + lastName 失败,之后 name 字段不应该自动更新了。
挑战在于我试图让这段代码存在于MyContactForm.tsx 文件中,因为此后我需要在其他类似的My*Form.tsx 组件中重用字段间依赖的逻辑,因此重用“通用" MyForm.tsx 组件不变。
【问题讨论】:
-
我想大多数人不明白你想要达到什么目的。您是否尝试在第一次更改后禁用名称字段?沙箱中已有默认值。如果我完全理解您想要实现的目标,我想我可以提供帮助。还要注意你提到的条件不在沙盒代码中,这使得目标更难理解。
-
对此我很抱歉。我试图停止使名称字段跟随名字和姓氏字段的更改,只有当用户自己更新名称字段以使其等于名字+空格+姓氏以外的其他内容时。是不是更清楚了?
-
它现在的工作方式是
name只有在Display Name被直接修改时才会更新。没有firstName + ' ' + lastName这样的东西。 -
对不起,我指的是 givenName 和 familyName,而不是 firstName 和 lastName。是的,我想要发生的是,如果
name = givenName + ' ' + familyName并且用户修改了givenName或familyName,那么name应该相应地改变。否则,如果用户通过手动修改name“断开链接”,那么它应该停止更新。 -
答案是否解决了您的问题?还是您在寻找其他东西?
标签: reactjs formik use-effect formik-material-ui