如何使用异步存储实现“稍后提醒”按钮?

问题描述

我的项目中存在模块,成功进行了汇款后会调用该模块。操作成功后,建议用户评估该应用。每次成功操作后都会调用应用评估,这有点烦人。如何添加“稍后提醒”按钮并使用异步存储实现?预先谢谢你!

import React,{ Component } from 'react';
import { View } from 'react-native';
import RateModal from 'react-native-store-rating';

export default class RateAppModal extends Component {
  state = {
    isModalOpen: true,};

  render() {
    return (
      <View>
        <RateModal
          modalTitle="Оцените наше приложение"
          rateBtnText="Оценить"
          cancelBtnText="Отмена"
          totalStarCount={5}
          defaultStars={0}
          isVisible
          sendBtnText="Отправить"
          commentPlaceholderText="Оставьте комментарий..."
          emptyCommentErrorMessage="Empty comment error message"
          playStoreUrl="market://details?id=com.smb.client.mobile"
          iTunesStoreUrl="itms-apps://itunes.apple.com/app/id1497101549"
          isModalOpen={this.state.isModalOpen}
          storeRedirectThreshold={0}
          style={{
            paddingHorizontal: 30,}}
          onStarSelected={(e) => {
            console.log('change rating',e);
          }}
          onClosed={() => {
            console.log('pressed cancel button...');
            this.setState({
              isModalOpen: false,});
          }}
          sendContactUsForm={(state) => {
            alert(JSON.stringify(state));
          }}
        />
      </View>
    );
  }
}

解决方法

是的,异步存储是您可以在存储中放置标志并记住用户选择的答案,或者另一种方法是将其存储在后端,但不建议使用

,

首先初始化要使用的存储密钥,并将其设置为false AsyncStorage.getItem('RemindMeLater',(err,result) => !result && AsyncStorage.setItem('RemindMeLater',false))

当按下“稍后提醒我”按钮时,您可以通过以下方式将存储设置为true AsyncStorage.setItem('RemindMeLater',true)

然后在您需要通过AsyncStorage.getItem('RemindMeLater',result) => result ? this.setState({isModalOpen:true}) : null)

重新显示模态时检查存储