我有一个TextInput,我想在我的函数中引用它。
next() {
let body = this.refs.body.value
}
<View>
<Text>Place the body here</Text>
<TextInput ref="body" placeholder="Your body goes here..." style={styles.body} placeholderTextColor='green'/>
</View>
但是我收到了这个错误:
undefined不是对象(评估'this.refs.body')
ref
无法在react-native中工作吗?
答案 0 :(得分:8)
我认为他们改变了ref的工作方式。现在,ref代替一个字符串,接受一个在特定组件被渲染时被调用的函数 你可以试试像,
next() {
let body = this._textInput.value
}
<View>
<Text>Place the body here</Text>
<TextInput ref={component => this._textInput = component} placeholder="Your body goes here..." style={styles.body} placeholderTextColor='green'/>
</View>
https://facebook.github.io/react-native/docs/direct-manipulation.html
或者,您也可以将onChange附加到TextInput,并在单击下一个按钮时记录输入。
编辑:
Ref仍然接受字符串,但它将被弃用。请改用ref中的函数。
答案 1 :(得分:0)
问题可能与您引用尚未安装的元素有关。您确定在componentDidMount
或更高版本上参考了它吗?
答案 2 :(得分:0)
这很好用
如果您只想查看ref的属性,请访问console.log(this._textInput) onFoucus() ......
onFocus(){
this._textInput.root.focus()
}
<textInput
ref={component => this._textInput = component}
/>