首页 > 解决方案 > React 没有双向绑定,那么为什么用户更改不会对不受控制的输入的 `value` 属性进行更改

问题描述

React 没有双向绑定,那么为什么即使用户对输入值进行更改,React 也需要保持其给定值

请解释这种行为的原因以及它是如何完成的?

 render() {
   return <input type="text" name="fullname" value="Johnny Papa" />
 }

标签: javascriptreactjs

解决方案


在您的示例中,input实际上是只读的,因为您设置了value. 因此,每次 react 渲染时,输入都会Johnny Papa覆盖 DOM 值,用户无法更改它。阅读有关默认值的文档。

如果您想允许编辑,您需要使用defaultValue

render() {
  return <input type="text" name="fullname" defaultValue="Johnny Papa" />
}

在这种情况下,react 设置一次的初始值,input然后退出。


推荐阅读