React native React Native-在应用程序关闭/转到后台之前将数据保存到异步存储

React native React Native-在应用程序关闭/转到后台之前将数据保存到异步存储,react-native,React Native,我对React Native很陌生,但我已经开始使用它开发一个应用程序,用户可以上传帖子。在发布屏幕上,有两个文本输入,一个用于标题,另一个用于正文。我希望应用程序能够保存草稿,以防用户关闭应用程序,这样不会丢失进度。我认为AsyncStorage和AppState的组合可以完成这项工作,但有些东西并没有按它应该的方式工作 export default class PublishScreen extends React.Component { constructor(props) {

我对React Native很陌生,但我已经开始使用它开发一个应用程序,用户可以上传帖子。在发布屏幕上,有两个文本输入,一个用于标题,另一个用于正文。我希望应用程序能够保存草稿,以防用户关闭应用程序,这样不会丢失进度。我认为AsyncStorage和AppState的组合可以完成这项工作,但有些东西并没有按它应该的方式工作

export default class PublishScreen extends React.Component {

    constructor(props) {
        super(props);
        this.state = {
            title: '',
            body: ''
        };
        this._getData();
    }

    _getData = async () => {
        await this.setState({
            'title': await AsyncStorage.getItem('title') || '',
            'body': await AsyncStorage.getItem('body') || ''
        });
    };

    componentDidMount() {
        AppState.addEventListener('change', this._handleAppStateChange);
    }

    componentWillUnmount() {
        AppState.removeEventListener('change', this._handleAppStateChange);
    }

    _handleAppStateChange = async (nextAppState) => {
        if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
            // App is going to be in the foreground
            this._getData()
        } else {
            // App is going to be closed/background, save the data
            await AsyncStorage.setItem('title', this.state.title);
            await AsyncStorage.setItem('body', this.state.body);
        }
        this.setState({appState: nextAppState});
    };
}
这种方法似乎在开发模式下工作,但一旦我在发布模式下构建应用程序,数据就不会被保存或恢复,我真的不确定它在哪里失败


我做错了什么,我使用的功能是否正确?

这是你应用程序的顶级组件吗?你可以参考此链接:当应用程序转到后台时添加代码以在异步存储中存储数据这是你应用程序的顶级组件吗?你可以参考此链接:当应用程序转到后台时添加代码以在异步存储中存储数据