我正在尝试在React Native中做一些TextInput
焦点内容,需要引用TextInput的ref
属性...但是得到一些奇怪的行为(运行Expo XDE)我尝试console.log输入引用,整个事情慢下来,好像有一些奇怪的内存循环。代码如下。
export default class MyComponent extends React.Component {
constructor() {
super();
this.setInputRef = this.setInputRef.bind(this);
}
// function where i want to set or access the input ref
setInputRef(input) {
console.log('This log message is fine');
console.log('This log message is not fine:', input); // locks up here
}
render() {
return (
<View>
<TextInput ref={input => this.setInputRef(input)} />
</View>
);
}
}
有什么想法吗?不确定它是否是本机问题。基本上我试图在我的setInputRef
函数中调用另一个传入并调用的函数,以便父组件可以知道此textinput的引用
答案 0 :(得分:1)
您不需要使用ref来执行此操作,您可以使用此代码执行您想要的操作:
export default class MyComponent extends React.Component {
state = {text: ''}
_setValue = (text) => this.setState({text})
render () {
return (
<View>
<TextInput
autoFocus={true}
onChangeText={this._setValue}
value={this.state.text}
/>
</View>
)
}
}
在这种情况下,您的TextInput
值会存储在this.state.text
中。此组件使用componentDidMount
将注意力集中在autoFocus={true}
上。
答案 1 :(得分:1)
我仍然不知道为什么系统会锁定&#39;每当我试图控制记录字段时ref
...但是我确实解决了我的问题,实际上正在我需要的参考。所以不确定这个问题是否已经解决了#39;本身,但我确实学到了一些东西。