Как исправить Не удается получить конфигурацию, потому что у маршрута нет проблемы с 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>
    );
  }
}

Сообщение об ошибке выглядит так




Ответы (1)


У вас есть initialRouteName, определенный как массив.

    initialRouteName: [screenNames.LOGIN]

Если это не ключ в объекте, он не должен быть в фигурных скобках.

    initialRouteName: screenNames.LOGIN

Должен исправить.

person bodolsog    schedule 06.08.2019