typescript - React Native + TypeScript + 异步
问题描述
我无法让这个组合起作用。我认为这特别是由于混合了 TypeScript?我的语法如此处所示,但我遇到了运行时问题。没有编译错误,但是当遇到 func 时,我得到:
this.foo 不是函数
export default class App extends Component<Props> {
render() {
return (
<Button title="A Button" onPress={this.buttonPressed} />
);
}
buttonPressed() {
this.foo().then(movies => {
console.log(movies);
});
}
async foo() {
try {
let response = await fetch('https://facebook.github.io/react-native/movies.json');
let responseJson = await response.json();
return responseJson.movies;
} catch (error) {
console.error(error);
}
}
}
解决方案
正如Crice 所指出的,这仅仅是因为无法this
在匿名回调中访问。可以通过以下方式解决:
onPress={() => this.buttonPressed(this)}
推荐阅读
- vue.js - 如何通过 Google Places API 使用 VuetifyJS 高级插槽示例
- c# - 在用户界面和控制台应用程序中使用 Task.Yield() 的区别
- jekyll - 如何最大限度地利用 Jekyll 生成的网页中的屏幕空间?
- r - 如何使用预测包获取 ccf 图中的重要信号/滞后列表?
- python - 对集合做某事,然后返回与集合相同的类型
- audio - A-frame:点击播放随机声音
- c# - C# & SQL Server:并行事务中的死锁
- react-native - 使用 react-native-navigation [V2] 时未显示顶部选项卡
- c# - 如何搜索 BindingList 并返回一个对象?
- machine-learning - 多标签分类 Keras 指标