【发布时间】:2020-03-30 22:40:21
【问题描述】:
我阅读了这个问题的答案,但没有一个与我的设置相似:
What are controlled components and uncontrolled components?
我有一个父组件和许多子组件作为输入。每个输入都有一个defaultValue,它是使用从父级接收的道具设置的,并且输入的验证在onBlur 上执行。这是因为验证是异步的,所以onChange 会像疯了一样减慢应用程序的速度。
如何调用此编排? “受控”的传统定义似乎是在每个onChange 上更新的输入,而“不受控”输入是管理其自己的内部状态的输入,该状态稍后通过 ref 访问。我的设置似乎两者都达不到,坐在中间的某个地方 - 或者不是?
更新:这是CodeSandbox。
【问题讨论】:
-
发布一些实际代码供我们查看会对您有所帮助。但从根本上说,“受控”只是意味着 React 将表单的状态存储在 state 中,并且 HTML 是基于此呈现的。 “不受控制”意味着表单值不存储在 React 状态中,而仅存储在 DOM 本身中,这是不好的,因为 React 应该是值的“真实来源”。您的 onChange 处理程序是否同步无关紧要。 reactjs.org/docs/uncontrolled-components.html
-
感谢您的评论,@jered。我用 CodeSandbox 的链接更新了问题。
标签: javascript reactjs input controlled-component