0
我遵循同名的'BookBrowser'示例 - 這是一個常用的應用程序,它教導React Native到n00bs,但不幸的是,經常使用NavigatorIOS而不是Navigator來向學生解釋導航。如何將renderRow對象作爲導航器的道具傳遞?
我決定給它一個,並設法通過'路由'導航對象傳遞靜態道具。然而,我卡在實際上傳遞renderRow對象(從ListView)。例如:
renderResults() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderBooks}
style={styles.listView}
/>
);
}
renderBooks(book) {
return (
<TouchableHighlight
style={styles.button}
underlayColor={'#F25F5D'}
onPress={this.onBookPress}
>
<View style={styles.row}>
<Text style={styles.title}>
{book.name}
</Text>
</View>
</TouchableHighlight>
);
}
我試圖用這個函數來無效傳遞書名prop。
onBookPress() {
this.props.navigator.push({name: 'bookdetails', dummy: this.props.name});
}
當我從孩子那裏消費時,我得到了未定義。我嘗試了其他組合,包括this.props.book.name等。
你能指點我一個工作代碼或引導我誤解我的位置嗎?
PS:正如我所說,我設法成功地通過靜態道具的子組件,所以問題是如何通過渲染行..
嗯我認爲你在renderRow中缺少書本對象。你正在調用行渲染器,但是你沒有給書來渲染書。我會嘗試像這樣:'renderRow = {(book)=> this.renderBooks(book)}'據我所知,其他一切都看起來不錯 – Vikky
感謝@Vikky,但這並沒有解決問題。詳情請查閱我自己的答案。 –