首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React本机TextInput引用导致奇怪的崩溃/lockup

React本机TextInput引用导致奇怪的崩溃/lockup
EN

Stack Overflow用户
提问于 2017-08-24 21:22:18
回答 2查看 1.7K关注 0票数 1

我正在尝试在React Native中做一些TextInput focus的事情,并且需要引用TextInput的ref属性……但是出现了一些奇怪的行为(运行Expo XDE),当我尝试console.log输入ref时,整个过程变慢了,就好像有一些奇怪的内存循环一样。下面的代码。

代码语言:javascript
复制
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>
    );
  }
}

有什么想法吗?不确定这是否是react原生问题。基本上,我尝试调用在setInputRef函数过程中传入和调用的另一个函数,以便父组件可以知道此文本输入的ref

EN

回答 2

Stack Overflow用户

发布于 2017-08-24 21:41:21

你不需要使用ref来做这件事,你只需要使用下面的代码来做你想做的事情:

代码语言:javascript
复制
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中。该组件使用autoFocus={true}将输入集中在componentDidMount上。

票数 1
EN

Stack Overflow用户

发布于 2017-08-24 22:04:39

我仍然不知道为什么每当我试图通过控制台登录字段的ref时,系统都会“锁定”……然而,我确实解决了我的问题,实际上就是得到了我需要的裁判。所以我不确定这个问题本身是否得到了“解决”,但我确实学到了一些东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45862808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档