我正在嘗試用於Android的React Native(版本0.37.0),並試圖製作一個簡單的應用程序來學習。在成功製作Button進入下一頁之後,現在我希望用戶通過點擊ListView中的項目(比如點擊在線商店中的一個項目,然後進入下一頁,顯示項目信息)進入下一頁。這裏是我的代碼:爲什麼ListView中的TouchableHighlight不會讓我進入下一頁?
<View>
// ListView
<ListView contentContainerStyle={styles.list}
dataSource={this.state.dataSource}
enableEmptySections={true}
renderRow={(rowData) =>
<TouchableHighlight
style={styles.listviewContainer}
onPress={() => {
Alert.alert('kyaa');
this.gotoItemPage.bind(this);
}}
>
<View>
/*some Text and Image*/
</View>
</TouchableHighlight>
}
/>
// Button Add
<TouchableOpacity onPress={this.gotoItemPage.bind(this)} >
<Image
style={styles.button}
source={/*some source*/}
/>
</TouchableOpacity>
</View>
在上面的代碼中有兩件事可點擊:ListView的item和Button Add。兩者都執行相同的方法。按鈕添加按預期工作,用戶在點擊時導航到下一頁。然而,當ListView的項目點擊時,它不會。顏色變化就像單擊按鈕時顯示Alert'kyaa'一樣,但不會進入下一頁(即使警報已刪除,仍然相同)。
我做錯了什麼?
作爲解釋它爲什麼在Button中起作用的原因,你的函數將從Button本身調用,並且你正在傳遞一個對你想調用的函數的引用(綁定它以便你不會鬆動參考組件的範圍)。在ListView的情況下,你自己調用這個函數。 – martinarroyo
不只是它的作品,我也明白爲什麼,並瞭解我需要了解更多。非常感謝你! :d – Konayuki