为什么React会用最后一个键盘输入预先填充输入标签
Why does React pre-populate input tags with the last keyboard input?
我创建了一个包含在div中的输入标记列表,以生成一个可编辑的文本列表。
但是,当我通过点击Enter向该列表添加新元素时,新的空元素会自动填充最后一个键盘输入,而不是空白。
以下是JsBin描述问题的链接:
https://jsbin.com/kovipurace/edit?html,输出
我希望输入为空。
有没有一种方法可以正确地实现预期行为?
我最初是基于react教程中的CommentForm编写代码的,但我故意不使用form标记来更清楚地使用回车键(不想乱用e.preventDefault()等)。我还在实际版本中添加了额外的功能,允许使用onBlur事件更新现有值。
我尝试过的:
我已经(希望是正确的!)实现了文档中所述的受控组件。
我尝试过使用defaultValue和而不是value,但效果是一样的。在这两种情况下,我都使用{this.props.value}
使用textEntry文本创建新的文本条目。
keyHasBeenPressed : function(e) {
if (e.keyCode == 13) {
var textEntry = this.refs.textEntry.value;
this.props.createEntry(textEntry);
}
},
您所需要的只是将createEntry的参数设为空白。
this.props.createEntry();
https://jsbin.com/daqura/1/edit?html,输出
我在#reactjs IRC频道和评论上找到了帮助。
在keyHasBeenPressed函数中,需要再次显式设置状态,就像在handleChange中一样。
getInitialState只用于在组件的生命周期中初始化状态一次。
相关文章:
- 单击鼠标,用MySQL数据填充html表单输入字段
- Javascript文本框-查找最低的输入和填充
- 从确认框中预填充输入文本框
- 点击填充输入的按钮&提交
- CasperJS填充表单-输入名称有方括号
- 如何自动填充输入文本框值以与名称相同
- 在输入字段中选择一个值,然后用相应的数据填充另一个字段
- 在 angularjs 中动态填充的 orderby,不使用输入的第二个变量
- 用文本输入填充选择输入
- 使用用户输入填充组合框
- 基于相同形式的其他输入填充标记输入
- 当输入填充了必需的属性javascript/html/css时,如何更改焦点颜色
- JavaScript 在输入填充时显示隐藏元素
- 根据其他输入填充输入
- CSS-如何强制文本输入填充容器的剩余空间
- 用数据库的输入填充下拉框,从而导致另一个填充的页面
- Jquery选择器输入填充相同的id,但不同的数字
- HTML从输入填充选择菜单而不提交数据
- 输入填充与键盘模拟
- AngularJS根据上一个<选择>字段的输入填充<选择>字段