我有一个包含很多项目的列表视图。我要触摸的是项目,然后跳到另一页。
我的问题是如何将navigator={this.props.navigator}
传递给renderRow
?
谢谢!
这是我的listview
:
return (
<ListView
style={ styles.listView }
dataSource={ this.state.dataSource }
renderRow={ this.renderRow }} />
);
这是我的renderRow
:
renderRow(event: Object) {
return (
<View>
<TouchableOpacity onPress={ () => this.props.navigation.navigate('Browser', {
link: event.ItemName,
}) }>
<View style={ styles.row }>
<Text style={ styles.textContainer }>
<Text style={ styles.title }>
{ event.ItemName }
</Text>
<Text style={ styles.type }>
{ event.BTContent }
</Text>
</Text>
</View>
<View style={ styles.cellBorder }></View>
</TouchableOpacity>
</View>
)
}
答案 0 :(得分:1)
看起来你应该怎么对我做。无论您使用的是功能组件还是类组件,该组件的道具都将包含navigation
。您无需将任何内容传递给renderRow
。
边注:ListView
已过时。根据您的使用情况,使用FlatList
或SectionList
。 https://facebook.github.io/react-native/blog/2017/03/13/better-list-views
答案 1 :(得分:0)
已弃用ListView,请改用FlatList。如果renderRow函数与在反应导航中用作屏幕的类位于同一类中,则您可以访问方法内部的导航道具,而不必传递任何内容。如果没有,请发布完整的相关代码。