reactjs - 如何根据 redux store 的内容动态指定 React Navigation 中的屏幕?

标签 reactjs react-native 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);

关于reactjs - 如何根据 redux store 的内容动态指定 React Navigation 中的屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52402488/

相关文章:

react-native - React Navigation RedirectUrl 实现

javascript - 单页应用程序 : If I'm not posting form values to the server and I'm not using any HTML validation, 我可以停止使用 <form> 标签吗?

html - body height 根据覆盖层的高度扩展

android-studio - 使用具有不同版本 Android 依赖项的相同库的两个或多个库之间的冲突

android - Netinfo.isConnected.fetch() 返回真

javascript - react native 抽屉导航器未打开

react-native - React native 导航选项卡注销功能

reactjs - 如何在 React Navigation 5.x 中的不同嵌套堆栈之间导航?

javascript - 无法读取未定义的属性 'engine' - Webpack React

reactjs - react -chartjs-2类型错误: undefined is not an object (evaluating 'nextDatasets.map' )