首页 > 解决方案 > react native t 梳形错误字符串 ref "input" React.createRef()

问题描述

我的渲染函数中有以下形式:

<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 构建后发生一次)

标签: javascriptreactjsreact-nativetcomb

解决方案


推荐阅读