首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新DOM元素需要React JS中的listner

问更新DOM元素需要React JS中的listner
EN

Stack Overflow用户
提问于 2017-01-11 00:17:56
回答 1查看 36关注 0票数 1

为什么绑定值需要侦听器来更改Dom元素。我认为React会自动比较真实的和虚拟的DOM,以找出DOM中的变化。那它为什么还需要一个监听器。

示例:插入以下组件时,输入字段不能修改。

代码语言:javascript
复制
class Header extends React.Component {
   render() {
      return (
         <div>
            <input type="text" value="xxx" />
         </div>
      );
   }
}

只能在添加onChange事件处理程序时修改。

EN

回答 1

Stack Overflow用户

发布于 2017-01-11 00:58:23

在上述情况下,无法修改输入字段,因为您提供的value属性为输入属性设置了静态字段,因此您无法对其进行编辑。

如果您不需要输入字段的默认值,只需删除value属性,您就可以修改input的值。这种处理输入值的方式称为uncontrolled input。为此,您不需要onchange侦听器。

示例

代码语言:javascript
复制
class Header extends React.Component {
   render() {
      return (
         <div>
            <input type="text" />
         </div>
      );
   }
}

使用controlled input的另一种方法是更改状态变量以修改输入值。在本例中,您将使用onchange侦听器

示例

代码语言:javascript
复制
class Header extends React.Component {
   constructor() {
      this.state = {
          inp: 'xxx'
      }
   }
   render() {
      return (
         <div>
            <input type="text" value={this.state.inp} onChange={(e) => this.setState({inp: e.target.value})} />
         </div>
      );
   }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41573393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档