2017-08-22 22 views
0

我想添加一個函數來返回基於renderItem FlatList組件內部狀態的按鈕文本。無法添加函數來創建renderItem內的動態按鈕FlatList

此代碼返回一個錯誤

功能this.renderButton不是一個函數

更新:

<FlatList 
     data={list} 
     renderItem={this.renderRow} 
    /> 

renderRow({item}) { 
    return(
     <TouchableWithoutFeedback> 
     <TouchableOpacity> 
      {this.renderButton()} 
     </TouchableOpacity> 
     <TouchableWithoutFeedback> 
); 
} 

renderButton() { 
    return <Text>Button</Text>; 
} 
+0

你綁定renderButton功能哪兒了嗎? – Jayce444

+0

需要看到更多的代碼才能夠幫助 –

+0

@ Jayce444不會在任何其他地方綁定它。只在這部分代碼中。 –

回答

1

您需要綁定renderRow功能是能夠在其中訪問this.renderButton

<FlatList 
     data={list} 
     renderItem={this.renderRow.bind(this)} 
    /> 

<FlatList 
     data={list} 
     renderItem={() => this.renderRow()} 
    /> 

renderRow = ({item}) => { 
    return(
     <TouchableWithoutFeedback> 
     <TouchableOpacity> 
      {this.renderButton()} 
     </TouchableOpacity> 
     <TouchableWithoutFeedback> 
); 
} 
+0

得到它的工作。謝謝。現在理解爲使用綁定。 –