没有密钥还原器(反应本机)

时间:2018-09-16 18:06:11

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

我正在尝试将Redux导航集成到我现有的应用程序中。它显示了错误No reducer provided for key navReducer。任何帮助表示赞赏。其他stackoverflow答案指出以下事实:发生此类错误时导入时会出现问题,但我不确定为什么在我的情况下会发生这种情况。

我的/components/navigation.js:

import React, { Component } from 'react'
import { createStackNavigator } from 'react-navigation'
import Login from '../containers/loginContainer'
import Home from '../containers/homeContainer'
import {
  reduxifyNavigator,
  createReactNavigationReduxMiddleware,
  createNavigationReducer,
} from 'react-navigation-redux-helpers'

export const RootStack = createStackNavigator(
  {
    Login: {
      screen: Login,
    },
    Home: { 
      screen: Home,
    },
  },
  {
    initialRouteName: 'Login'
  }
)

export const navReducer = createNavigationReducer(RootStack)

export const navigationMiddleware = createReactNavigationReduxMiddleware(
  "root",
  state => state.nav,
)

const appNavigator = reduxifyNavigator(RootStack, "root")
const mapStateToProps = (state) => ({
  state: state.nav,
})

export const AppWithNavigationState = connect(mapStateToProps)(appNavigator)

我的商店配置为:

import { createStore, applyMiddleware, compose } from 'redux'
import { persistStore, persistReducer } from 'redux-persist'
import thunk from 'redux-thunk'
import storage from 'redux-persist/lib/storage'
import rootReducer from './reducers'
import { navigationMiddleware } from './components/navigation'

const persistConfig = {
  key: 'myKey',
  storage,
}

const middlewares = [thunk, navigationMiddleware]

const persistedReducer = persistReducer(persistConfig, rootReducer)
const store = createStore(
  persistedReducer,
  {},
  compose(
    applyMiddleware(...middlewares)
  )

)
const persistedStore = persistStore(store)

export default store

我的根减少器看起来像这样:

import { combineReducers } from 'redux';
import { navReducer } from '../components/navigation'

const rootReducer = combineReducers({
  navReducer, // It throws the error here!!
})

export default rootReducer

0 个答案:

没有答案