Reactjs undefined不是对象(计算';this.onPress.bind';)

Reactjs undefined不是对象(计算';this.onPress.bind';),reactjs,react-native,Reactjs,React Native,要点: 我正在使用React Native创建一个iOS应用程序,在呈现我的Dashboard.js时出现此错误 MyDashboard.js呈现不同的scrollableTabView,每个选项卡都包含一个ListView,我在下面的一个列表项中包含了一些代码 renderArchiveOrder(order) { return ( <TouchableHighlight onPress={this.onPress.bind(order.id)}> <

要点

我正在使用React Native创建一个iOS应用程序,在呈现我的Dashboard.js时出现此错误

MyDashboard.js呈现不同的
scrollableTabView
,每个选项卡都包含一个
ListView
,我在下面的一个列表项中包含了一些代码

renderArchiveOrder(order) {
  return (
    <TouchableHighlight onPress={this.onPress.bind(order.id)}>
       <View style={styles.listObject}>
       <View style={styles.thumbnail}>
       <Text style={styles.title}>#{order.bid}</Text>
       <Text style={styles.time}>TID</Text>
       <Text style={styles.subTime}>{order.time}</Text>
     </View>
     <View style={styles.information}>
        <Text style={styles.restaurantName}>{title}</Text>
        <Text style={styles.dropoffName>{order.locations.dropoff.address}</Text>
     </View>
     </View>
    </TouchableHighlight>
    );
  }
当我只是尝试将数据发送到单击函数并将导航器推到新视图时,为什么会发生这种情况


由于您将
renderachiveorder
方法作为值传递给另一个组件,因此它将丢失其上下文。因此,方法中的
this
变量不会引用组件实例,尝试访问
this.onPress
将产生
未定义的

要解决此问题,只需将方法绑定到组件实例,然后再将其传递到
ListView
组件:

<ListView
  dataSource={this.state.archiveDataSource}
  renderRow={this.renderArchiveOrder.bind(this)}
  style={styles.listView}/>

有史以来最好的解释!谢谢你,伙计
<ListView
  dataSource={this.state.archiveDataSource}
  renderRow={this.renderArchiveOrder.bind(this)}
  style={styles.listView}/>