如何在React-native

时间:2018-12-30 17:05:48

标签: react-native

我正在做出反应,以反应自己的本机。
但我坚持使用e.target.value。
这是React的一个很好的代码。

  _searchContact = (e) => { this.state.keyword 
    this.setState({
      keyword : e.target.value
    });
  }

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    <input
      name="keyword"
      placeholder="Search"
      value={this.state.keyword} 
      onChange={this._searchContact} 
    />

然后我尝试用React-native的方式再次写
但这不起作用。

  _searchContact = (e) => { 
    this.setState({
      keyword : e.nativeTarget.value
    });
  }



     <TextInput
        style={{height: 40, borderColor: 'gray', borderWidth: 1}}
        name="keyword"
        placeholder="Search"          
        onChangeText={this._searchContact}        
        value={this.state.keyword} 
    />

2 个答案:

答案 0 :(得分:2)

如果您使用的是onChangeText,则必须使用匿名函数并像这样传递“文本”

(text) => this._searchContact(text)

而不是将e传递到您的方法中,而是将test作为参数传递并设置等于文本的关键字。

 _searchContact = (text) => { 
 this.setState({
  keyword : text
 });
}

希望这会有所帮助!

答案 1 :(得分:0)

只需使用e作为值并将其在setState中设置为keyword

您的代码只能与以下代码一起使用:

_searchContact = (e) => { 
    this.setState({
      keyword : e
    });
  }

实际上,当文本输入的文本更改时,onChangeonChangeText都被触发,但是onChange不提供更改后的文本,它只是一个提示回调,因此要提取值当前正在键入的文本,onChangeText给出一个回调,并将更改后的文本作为回调的参数。

供参考,请阅读this

希望这会有所帮助。祝您编码愉快!