javascript - JSX React:使用 ref 选择文本框中的所有内容
问题描述
这是我目前拥有的。
class App extends React.Component {
constructor(props) {
super(props)
this.textInput = React.createRef();
this.state = {
value: 'select all on click'
}
}
handleClick = e => {
e.preventDefault();
this.setState({ value: this.textInput.current.select()})
};
render() {
return (
<div>
<input type="text" ref={this.textInput}
value={this.state.value}
onClick={this.handleClick}/>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById("root"));
这可行,但是在我的浏览器中,我在 handleClick 中不断收到此错误:
Cannot read property 'current' of undefined.
这是因为我在本地环境中使用了一些<Child>
组件。<input>
我已经尝试重命名 ref 以匹配父道具,如此处建议的https://stackoverflow.com/a/53241934/6312629,但这也没有用。
任何有关如何解决此问题的建议将不胜感激!
非常感谢!
解决方案
如果您从一个新项目开始,我建议您尝试带有钩子的功能组件。
尝试自己设置 ref:
ref={ ref => {
this.textInput = ref
}}
推荐阅读
- sql - 将日文字符插入 SQL Server 数据库
- multithreading - 带有 moveThreadCount=1 的 Optaplanner 配置与没有 moveThreadCount 不同
- r - 是否可以将 R 中的多个数据帧合并为一个数据,其中所有列的键都相同
- python - 如何使用 Python 和 patoolib 解压缩 .rar 文件
- wxpython - wxPython 在 wx.ScrolledWindow 中添加大量图片
- .htaccess - 用 htaccess 重写多个 url
- branch.io - Sendgrid 集成:如何在与 CNAME 重定向相同的域上托管 AASA 文件
- c# - 如何使用 AutoMapper 将配方与成分映射
- dart - Flutter http错误类型'_InternalLinkedHashMap
' 不是类型 'Map 的子类型 ' - mysql - mysql服务器不见了