javascript - 将表单元素上的 onChange 事件委托给 React 中的每个子元素时收到警告
问题描述
我正在学习 React 并尝试构建一个表单组件来提交数据,我参考了 react 官方文档来处理表单中的多个输入。
正如您从示例代码中看到的那样,它定义了onChange={this.handleInputChange}
每个输入元素,我尝试将onChange
事件提升到form
元素本身<form onChange={this.handleInputChange} >
,并从每个输入元素中删除它们,然后根据change
可以冒泡的事件运行良好。
但是我想知道这种方式是否有任何副作用,因为我在网上搜索时没有看到太多这样的代码,而且大多数关于 React 表单的文章都是在 React 的 doc 中使用相同的方式。
更新:
我基于下面的 React 站点示例创建了一个 MyForm 组件,
https:
//codepen.io/Lenient/pen/PyLwxp?editors=0010
请注意我将onChange
事件放入表单元素。如果您打开开发者工具,您可以在控制台中看到两条警告消息。这是其中一条消息。
警告:失败的道具类型:您在
value
没有处理程序的情况下为表单字段提供了道具onChange
。这将呈现一个只读字段。如果该字段应该是可变的,请使用defaultValue
. 否则,设置onChange
或readOnly
。
我不是很清楚,任何人都可以举一个例子来帮助我理解它吗?
解决方案
推荐阅读
- git - 浅克隆后推送到 Github 非常慢
- weblogic - 是否存在 Java Mission Control 7.1.2 的 Weblogic 插件?
- android - Netty 服务器不响应请求
- arrays - 我应该如何从头开始构建获取(发布)数据数组/结构?如何加入两个数组?Fetch 有必要吗?
- r - R根据CSV中的标准选择工作目录中的文件
- node.js - while 循环如何与 Nodejs 中的 promise 和回调函数一起工作?
- node.js - 我如何将 module.export 导入到我的主代码中,因为它不像函数并且不返回任何变量?
- javascript - 如何从选择菜单中选择文本选项
- angular - 在 Angular 中显示当前工作日日期
- .htaccess - 为什么在请求文本文件时出现 Not Found 错误