Reactjs undefined不是对象(计算';this.onPress.bind';)
要点: 我正在使用React Native创建一个iOS应用程序,在呈现我的Dashboard.js时出现此错误 MyDashboard.js呈现不同的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)}> <
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}/>