Как устранить проблему «Не удается получить конфигурацию, потому что у маршрута нет имени маршрута» в реакции собственной навигации? - PullRequest
0 голосов
/ 19 декабря 2018

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

The error message is shown as this

1 Ответ

0 голосов
/ 06 августа 2019

InitialRouteName определено как массив.

    initialRouteName: [screenNames.LOGIN]

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

    initialRouteName: screenNames.LOGIN

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...