我的渲染函数中有以下形式:
<Form ref={this.formRef} type={SetupOne} options={options} value={this.state.value}/>
我在顶部的构造函数中创建了 ref:
this.formRef = React.createRef();
然后我像这样检索值:
if (this.formRef && this.formRef.current) {
const temp = this.formRef.current.getValue();
}
但我收到以下错误:
错误警告:组件“文本框”包含字符串引用“输入”。> 在未来的主要版本中将删除对字符串引用的支持。这种情况不能自动转换为箭头函数。我们要求您使用 useRef() 或 createRef() 手动修复此情况。在此处了解有关安全使用 refs 的更多信息:https ://reactjs.org/link/strict-mode-string-ref
该错误将我带到我的表单所在的代码行:
形式(在 NewSetup.js:191)
所以我是根据反应原生文档做的:https ://reactjs.org/docs/refs-and-the-dom.html#creating-refs
这就是为什么我不明白这个错误。有人知道我做错了什么吗?
我的反应版本:
反应原生 cli:2.0.1 反应原生:0.64.0
谢谢您的帮助!
这就是我使用 t 梳的方式:
import t from 'tcomb-form-native';
const Form = t.form.Form;
let SetupOne = t.struct({
name: t.maybe(t.String),
nameSub: t.maybe(t.String)
});
let options = {
fields: {
name: {
placeholder: 'Bike Name',
stylesheet: stylesheet
},
nameSub: {
placeholder: 'Location Name',
stylesheet: stylesheet
},
stylesheet: formStyles,
}
}
我在构造函数中的状态:
this.state = {
value: {
name: 'Name',
nameSub: 'Location'
},
(这只会在 android 构建后发生一次)