React Native + TypeScript + async

时间:2018-05-02 01:12:24

标签: typescript react-native

我无法让这个组合工作。我认为这是因为混合使用TypeScript?我的语法如here所示,但我遇到了运行时问题。没有编译错误,但是当遇到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);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

正如CRice所指出的,这仅仅是因为无法在匿名回调中访问this。它可以通过以下方式解决:

onPress={() => this.buttonPressed(this)}