javascript - 受控/非受控输入
问题描述
为什么React
抱怨受控/不受控的输入?从头开始value
设置为,并在to中设置。this.state.text
this.state.text
constructor
''
import React from 'react';
class Foo extends React.Component {
constructor(props) {
super(props);
this.state = {
text: '',
};
this.textInput = React.createRef();
}
_onClick = () => {
this.setState({
text: '',
});
this.textInput.current.focus();
}
_onKeyDown = (event, search) => {
if (event.keyCode === 27) {
this.setState({
text: '',
});
}
}
_onChange = (event) => {
this.setState({
text: event.target.value,
})
}
render() {
return (
<React.Fragment>
<span
className={'foo'} >
<button
onClick={() => this._onClick()} />
<input
ref={this.textInput}
className='bar'
type='text'
value={this.state.text}
placeholder='Kittens...'
onKeyDown={event => this._onKeyDown(event)}
onChange={event => this._onChange(event)} />
</span>
</React.Fragment>
)
}
};
解决方案
由于您同时使用两者ref={this.textInput}
,value={this.state.text}
所以我认为它在抱怨使用一种方法。通常我们使用ref
非受控组件和受控组件我们使用value
道具callbacks
等onChange
推荐阅读
- html - 如何使用引导程序验证表单中的电子邮件
- python - 在 Dict 中取具有相同值的 Min 键
- converters - 将字符行转换为“普通”文本
- autolisp - 如何在 Autolisp 中打印值?
- python - Pandas 合并 2 个数据框
- java - 快速排序出错(添加了一些重复项)
- php - 如何使用 Wordpress 中的链接按钮提交 Woocommerce 表单?(元素)
- ionic-framework - 此表达式不可构造。Type 'typeof import("../node_modules/spotify-web-api-js/src/typings/spotify-web-api") 没有构造签名
- pine-script - 关闭编译器警告消息
- python - 如何使用循环调用多个函数?