我在ComponentWillMount中使用AsyncStorage来获取本地存储的accessToken,但是它在render()函数运行后返回promise.如何使render()等待,直到承诺完成?谢谢.
你不能让渲染等待我所知道的.在我正在开发的应用程序中做了什么是添加一个加载屏幕,直到AsyncStorage解决的承诺.见下面的例子:
var react = require('react-native'); var = { AsyncStorage,View,Text } = React; var component = React.createClass({ getInitialState() { return { isLoading: true }; },componentWillMount() { AsyncStorage.getItem('accessToken').then((token) => { this.setState({ isLoading: false }); }); },render() { if (this.state.isLoading) { return <View><Text>Loading...</Text></View>; } // this is the content you want to show after the promise has resolved return <View/>; } });
在状态对象上设置isLoading属性将导致重新渲染,然后可以显示依赖于accessToken的内容.
在旁注中,我写了一个名为react-native-simple-store的库,简化了AsyncStorage中的数据管理.希望你觉得它有用.