【问题标题】:How to fix "Cannot get config because the route does not have a routeName" issue in react native navigation?如何在反应原生导航中解决“无法获取配置,因为路线没有 routeName”问题?
【发布时间】:2019-05-19 14:02:30
【问题描述】:

我正在尝试在 react-native 中使用 react-navigation 与文档中的 redux,但我收到此错误“无法获取配置,因为路由没有 routeName”。我试过的代码如下

另外请给我解释一下,如何使用“createReactNavigationReduxMiddleware”

import {
   createStackNavigator,
} from 'react-navigation';
import {
  createStore,
  applyMiddleware,
  combineReducers,
} from 'redux';
import {
  reduxifyNavigator,
  createReactNavigationReduxMiddleware,
  createNavigationReducer,
} from 'react-navigation-redux-helpers';
import { Provider, connect } from 'react-redux';
import React from 'react';
import login from "./features/login/containers"
import settings from "./features/settings/containers"
import * as screenNames from "./navigation/screen_names";



const AppNavigator = createStackNavigator(
  {
    [screenNames.LOGIN]: login,
    [screenNames.SETTINGS]: settings
  },
  {
    initialRouteName: [screenNames.LOGIN]
  }
);

const navReducer = createNavigationReducer(AppNavigator);
const appReducer = combineReducers({
  nav: navReducer,
});

// Note: createReactNavigationReduxMiddleware must be run before reduxifyNavigator
const middleware = createReactNavigationReduxMiddleware(
  "root",
  state => state.nav,
);

const NavApp = reduxifyNavigator(AppNavigator, "root");
const mapStateToProps = (state) => ({
  state: state.nav,
});
const AppWithNavigationState = connect(mapStateToProps)(NavApp);

const store = createStore(
  appReducer,
  applyMiddleware(middleware),
);

export default class App extends React.Component {
  render() {
    return (
      <Provider store={store}>
        <AppWithNavigationState />
      </Provider>
    );
  }
}

【问题讨论】:

    标签: react-native redux react-navigation react-native-navigation react-navigation-stack


    【解决方案1】:

    您已将 initialRouteName 定义为数组。

        initialRouteName: [screenNames.LOGIN]
    

    除非它是对象中的键,否则它不应该在大括号中。

        initialRouteName: screenNames.LOGIN
    

    应该修复它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 2018-08-20
      相关资源
      最近更新 更多