我使用typescript进行react-native开发。
此处List
和ListItem
来自NativeBase,ListItem
就像TouchableOpacity
组件。
...
public onClick = () => this.props.navigation.navigate("NextScreen");
public _renderRow = (item: any) {
return (
<ListItem onPress={() => this.onClick()}>
...
</ListItem>
);
}
public render() {
return(
<List
dataArray={this.data}
renderRow={this._renderRow}
/>
);
}
当我点击项目时,它会显示以下错误。
_this2.onClick不是一个函数。 (在&#39; _this2.onClick()&#39;,&#39; _this2.onClick&#39;未定义)
我认为这是因为onClick()
函数没有绑定到组件类。该函数是否在typescript中自动绑定?
我该如何解决这个问题?
答案 0 :(得分:2)
您需要bind
组件类的方法:
public onClick() {
this.props.navigation.navigate("NextScreen");
}
public _renderRow(item: any) {
return (
<ListItem onPress={this.onClick}>
...
</ListItem>
);
}
public render() {
return(
<List
dataArray={this.data}
renderRow={this._renderRow.bind(this)} // <---- Here
/>
);
}