我使用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不是一个函数。 (在'_this2.onClick()'中,'_this2.onClick'未定义)
我假设这是因为onClick()
函数没有绑定到组件类。函数是否在typescript中自动绑定?
我怎么解决这个问题?
你需要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
/>
);
}