reactjs - 在 React 的无状态函数组件中选择 React 中的元素?
问题描述
<TextField
onChange={props.onChangeTextField}
ref="questionInput"
style={styles.textField}
value={props.existingValue}
fullWidth={true}
/>
我试图在无状态功能组件中提供一个输入字段,以便在组件加载时能够聚焦它:
componentWillMount = () => {
this.refs.questionInput.focus();
console.log('test')
}
}
但我得到了错误:
Stateless function components cannot have refs.
那么有没有办法在没有 ref 的情况下在 React 中聚焦输入字段?
解决方案
你应该用forwardRef
函数包装你的输入组件。像这样的东西:
import * as React from "react";
const TextInput = React.forwardRef(
(props, ref) => <input ref={ref} {...props} />
);
export default TextInput;
请注意,它将向您的功能组件添加第二个参数,您应该将其作为ref
道具传递给 DOM 元素。
推荐阅读
- abap - 使用 TEXT_CONVERT_XLS_TO_SAP FM 时的空白表
- excel - 将 XLS 文件从 GCS 导入 BigQuery
- node.js - 为什么 bcrypt 比较在不同服务器上为相同的密码和哈希返回 false?
- objective-c - 如何从块中取出数据?
- javascript - 如何使用 Vue.js 组件从 Firestore 中删除图像
- mongodb - 如何修复 Net Core 的 mongodb 驱动程序中的“DnsClient.DnsResponseException”错误?
- apache-kafka - 反应式 Kafka:使用事务处理一次
- python - 如何将联系人字典转换为 vcard(*.vcf 文件)?
- python - 在 Python 中使用 rasterio 将 GEOTIFF 重新网格化以降低分辨率
- python - Python比较预测后的结果