如何将ListView与react-navigation结合

时间:2019-06-06 12:30:33

标签: reactjs react-native react-router

我有一个包含很多项目的列表视图。我要触摸的是项目,然后跳到另一页。 我的问题是如何将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>

    )
  }

2 个答案:

答案 0 :(得分:1)

看起来你应该怎么对我做。无论您使用的是功能组件还是类组件,该组件的道具都将包含navigation。您无需将任何内容传递给renderRow

边注:ListView已过时。根据您的使用情况,使用FlatListSectionListhttps://facebook.github.io/react-native/blog/2017/03/13/better-list-views

答案 1 :(得分:0)

已弃用ListView,请改用FlatList。如果renderRow函数与在反应导航中用作屏幕的类位于同一类中,则您可以访问方法内部的导航道具,而不必传递任何内容。如果没有,请发布完整的相关代码。