繁体   English   中英

React 输入 defaultValue 重新渲染

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM