[英]React input defaultValue re-rendering
我正在使用带有反应的表单,并且在更新我的输入值时遇到了问题。 我有两个列表按钮。 这些按钮允许我调用不同的 json 对象并将它们传输到输入。 我分别使用这些按钮。 一些 json 对象可能具有相似的键。 转移这些相似性的输入没有变化。 虽然不同键没有问题,但相同键的输入没有变化。 我将 json 中的值作为 defaultValue 写入输入。 默认值没有变化。 我使用占位符来测试它。 占位符继续工作没有任何问题。 但是,defaultValue 不会更新。
{Object.keys(props.activeElement).map((key) => (
<Form.Item label={key} name={key}>
{inputRender(key)}
</Form.Item>
))}
单击相关按钮时,返回的 json 将设置为 activeElement。
const inputRender = (key) => {
return <Input defaultValue={props.activeElement[key]} />;
};
你能帮助我吗?
defaultValue
在第一次渲染时被缓存。 所以即使props.activeElement[key]
指向一个新值,输入的值也不会改变。
更多关于 antd 的FAQ的内容。
我通过使用 ref 解决了这个问题。 我创建了一个参考值。
const formRef = useRef ();
点击按钮我运行了这个。
formRef.current.setFieldsValue ({... json});
我在我的表格上使用了这个 refi。
ref = {props.formRef}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.