reactjs - 如何根据 redux store 的内容在 React Navigation 中动态指定屏幕?
问题描述
我的导航器是:
import { connect } from 'react-redux';
import { createDrawerNavigator } from 'react-navigation';
const screens = {
Home: Homecreen,
};
if (this.props.userStatus !== 'active') {
screens.Upgrade = UpgradeScreen;
}
const MainDrawer = createDrawerNavigator(screens);
const mapStateToProps = (state) => {
return { userStatus: state.user.status };
};
export default connect(mapStateToProps)(MainDrawer);
我只想UpgradeScreen
在用户状态不活跃时显示。在上面的代码中,我得到了错误:
undefined is not an object (evaluating 'this.props.userStatus')
我该如何解决?
解决方案
为了能够访问this.props.userStatus
,您应该有一个组件。以下是您的操作方法:
import { connect } from 'react-redux';
import { createDrawerNavigator } from 'react-navigation';
const screens = {
Home: Homecreen,
};
const MainDrawer = ({ userStatus }) => {
if (userStatus !== 'active') {
screens.Upgrade = UpgradeScreen;
}
const Navigator = createDrawerNavigator(screens);
return <Navigator />
}
const mapStateToProps = (state) => {
return { userStatus: state.user.status };
};
export default connect(mapStateToProps)(MainDrawer);
推荐阅读
- vuejs3 - 由于插件未重新加载,Vue 3 本地组件库 (sfc) 开发无法正常工作
- next.js - 如何在 next.js 项目中从 url 导入模块
- reactjs - 我如何使用 breakpoint.value
- google-apps-script - 在谷歌脚本中从另一个文件(在同一个项目下)访问一个函数
- discord.py - 如何在 role.members 使用中为两个角色使用 for 循环
- lua - Zerobrane Studio IDE 给出“未捕获的 lua 脚本异常”
- python - 无法在小数据集上训练多标签分类器
- c# - 如何显示 ASP.NET 默认黄屏死机,带有文件路径等调试信息,但没有源错误部分
- matrix - 在 GLM 中设置矩阵的全局位置
- android - DialogFragment中edittext的光标气泡位置