2017-05-25 69 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); 
} 
相關問題