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