2017-05-25 159 views
0

我有以下情况,TextInput将输入的值传递给函数。我的问题是如何从传递给函数的searchString中提取文本值。在那一刻它是一个对象。将TextInput传递给函数时从TextInput中提取值

<TextInput 
    style={styles.input} 
    placeholder="Search..." 
    onChangeText={(searchString) => this.searchChanged({searchString})} 
    placeholderTextColor="#555" 
/> 

searchChanged(searchField) { 

     console.log("Search String Changed "+ searchField); 

     this.setState({ 
      dataSource: this.state.dataSource.cloneWithRowsAndSections(this.convertNeighbourArrayIntoMap(this.state.dataSourceCopy, "Mike")), 
     }); 

    } 
+0

首先,只有你需要在第二部分的论点改变fx:'onChangeText = {()=> this.searchChanged({searchString})}'第二你说“它是一个对象”,你传递给它什么样的对象?你不能直接访问你需要的财产吗? – Jayce444

+0

在控制台日志中的分钟我得到“搜索字符串改变[对象对象]”,我希望这陈述我传递的输入内的文本值。 – ORStudios

回答

0

这是一个对象,因为你传递一个对象:由于您使用{}这里

onChangeText={(searchString) => this.searchChanged(searchString)} 
0

{searchString} - means object 

您应该更改代码,这

this.searchChanged({searchString}) 

0123的含义是{searchString:searchString},它会被转换成:

this.searchChanged({searchString: searchString}) 

检查这个片段:

let a = 5; 
 

 
console.log({a});

写这样的:

<TextInput 
    style={styles.input} 
    placeholder="Search..." 
    onChangeText={(searchString) => this.searchChanged(searchString)} 
    placeholderTextColor="#555" 
/> 

searchChanged(searchField) { 
    console.log("Search String Changed "+ searchField); 
}