【发布时间】:2017-01-19 05:35:17
【问题描述】:
我在index.js 我的 React Native 项目中有一个列表视图,如下所示。
import ResultRow from './resultRow'
class ResultList extends Component {
constructor() {
}
updateDate(){
//Some operation
}
onPressRow() {
try {
console.log("Selected!");
//Some operation
this.updateDate(); // Got undefined is not a function
} catch (error) {
console.error(error);
}
}
renderRow(rowData) {
return (
<ResultRow
onPress={this.onPressRow}
{...rowData} />
)
}
render() {
return (
<ListView
style={[styles.container, { padding: 10, backgroundColor: '#ddd' }]}
dataSource={this.state.dataSource}
renderRow={this.renderRow.bind(this)} />
);
}
}
并在resultRow.js 文件中使用此模板绑定列表项,如下所示。
import React from 'react';
import { TouchableHighlight, StyleSheet, Image,View } from 'react-native';
const ResultRow = (props) => (
<TouchableHighlight onPress={() => props.onPress()}>
<View>
<Text>My Row</Text>
</View>
</TouchableHighlight >
);
export default ResultRow;
如果我从列表视图中选择一行 onPress 事件调用。并执行onPressRow 函数。从onPressRow 函数我调用了另一个函数,该函数在同一个名为“updateDate”的类中定义。我这样称呼this.updateDate();,但得到undefined is not a function error。
我做错了什么?
提前致谢。
【问题讨论】:
-
绑定函数或使用箭头函数!
this.onPressRow = this.onPressRow.bind(this);在构造函数中。 -
@AndrewLi 谢谢。现在修复:)
标签: javascript reactjs react-native ecmascript-6