我使用 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 is not a function. (In '_this2.onClick()', '_this2.onClick' is undefined)
我认为这是因为 onClick()
函数未绑定(bind)到组件类。 typescript 中是否自动绑定(bind)函数?
我该如何解决这个问题?
最佳答案
您需要将方法绑定(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
/>
);
}
关于javascript - typescript :_this2.onClick 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49136836/