React native 如何以编程方式删除React导航中的抽屉项?

React native 如何以编程方式删除React导航中的抽屉项?,react-native,expo,react-navigation,react-navigation-drawer,React Native,Expo,React Navigation,React Navigation Drawer,问题:我正在使用React-Native、React-Navigation和Expo-In-App购买。我抽屉里的第一项是通过应用内购买“解锁应用”。我想让用户在成功购买应用程序后导航回主屏幕。当用户被导航回家中时,我希望抽屉反映“解锁应用程序”选项卡不再存在,因为该应用程序已购买。我还是个新手,所以如果这太简单了,我很抱歉 我尝试过的事情:我已经完成了这里要求的事情,这也是许多类似问题的建议。如果我想有一个从一开始就隐藏的选项卡,比如在用户购买应用程序后关闭并重新打开应用程序,这是非常好的,但

问题:我正在使用React-Native、React-Navigation和Expo-In-App购买。我抽屉里的第一项是通过应用内购买“解锁应用”。我想让用户在成功购买应用程序后导航回主屏幕。当用户被导航回家中时,我希望抽屉反映“解锁应用程序”选项卡不再存在,因为该应用程序已购买。我还是个新手,所以如果这太简单了,我很抱歉

我尝试过的事情:我已经完成了这里要求的事情,这也是许多类似问题的建议。如果我想有一个从一开始就隐藏的选项卡,比如在用户购买应用程序后关闭并重新打开应用程序,这是非常好的,但是在用户购买应用程序后,它不会直接帮助我

代码:

App.js

import React,{Component}来自'React';
从'react-native'导入{SafeAreaView,TouchableOpacity,Platform};
从“@expo/vector icons”导入{Feather,AntDesign,Entypo,MaterialIcons};
从“expo-in-app-purchases”导入*作为应用程序采购;
从“@react native community/async storage”导入异步存储;
从“/screens/UnlockAppFromStoreScreen”导入{isAppPurchased};
从'react-navigation'导入{createAppContainer};从'react-navigation-drawer'导入{createDrawerNavigator};
从“./constants/Strings”导入字符串;
从“./constants/Colors”导入颜色;
//跳过所有屏幕导入
.
.
.
var isPurchased=假;
类DrawerNavigation扩展组件{
componentDidMount(){
如果(!isPurchased){
isPurchased=isAppPurchased()
}  
}  
toggleDrawer=()=>{//打开和关闭侧抽屉
this.props.navigationProps.toggleDrawer()
}; 
render(){
报税表(
        
         
  
 
    );  }}
类隐藏扩展组件{
render(){
返回null
}}
var unlockDroperLabel=!我买了什么?Strings.unLockAppLabel:;
var unlockDrawerIcon=!是否已购买?:
const papernavigator=createpapernavigator({
解锁:{
屏幕:解锁AppScreenNavigator
导航选项:{
抽屉标签:解锁抽屉标签
抽屉图标:解锁抽屉图标
}  
},  
主页:{
屏幕:MainScreenNavigator
导航选项:{
抽屉标签:字符串。homeLabel
付款人:
}  
},  
帮助:{
屏幕:HelpScreenNavigator
导航选项:{
抽屉标签:Strings.helpLabel
付款人:
}  
},  
关于:{
屏幕:AboutScreenNavigator
导航选项:{
抽屉标签:Strings.aboutLabel
}  
},  
发送反馈:{
屏幕:SendFeedbackNavigator
导航选项:{
抽屉标签:Strings.sendFeedback
付款人:
}  
}},  
{initialRouteName:'Home'});
inapppurchaseListener.setPurchaseListener(
({responseCode,results,errorCode})=>{
log(“购买侦听器:”)
如果(responseCode==InAppPurchases.IAPResponseCode.OK){
results.forEach(购买=>{
如果(!购买.确认){
log(`Successfully purchased${purchase.productID}`)
//在此处解锁应用程序
setItem(Strings.appPurchaseStorageItem,'true')
InAppPurchases.finishTransactionSync(purchases,false);
解锁抽屉=
解锁抽屉标签=
}      
});  
}  
否则{
log(`Something出错:错误代码${errorCode}`)
}
});
导出默认createAppContainer(抽屉驱动);
isapp购买功能:

导出异步函数isAppPurchased(){
var storedData=await AsyncStorage.getItem(Strings.appPurchaseStorageItem);
var isPurchased=假;
if(storedData!==null){
isPurchased=storedData=='true';
}
否则{
var purchaseHistory=await InAppPurchase.connectAsync();
purchaseHistory.forEach(结果=>{
isPurchased=结果。已确认;
});
}
已购买的退货;
}
如有任何建议,将不胜感激