代码之家  ›  专栏  ›  技术社区  ›  merry-go-round

TypeError:undefined不是对象(正在计算“\u ref$i18n.currentLanguage”)

  •  1
  • merry-go-round  · 技术社区  · 6 年前

    我正在使用 redux-react-native-i18n 用于本地化。

    我收到了这个错误

    TypeError:undefined不是对象(正在计算“\u ref$i18n.currentLanguage”)

    这是我存储/索引中的代码。js公司

    import { i18nReducer, i18nActions, Loc } from 'redux-react-native-i18n';
    
    reducers.i18n = i18nReducer
    
    const store = createStore(
      reducers,
      {},
      compose(
        applyMiddleware(thunk)
      )
    );
    
    const dictionaries = {
        'en-US': {
            'oh': 'Order History',
        },
        'ko-KR': {
            'oh': '주문내역',
        },
        //...
    
    }
    
    store.dispatch( i18nActions.setDictionaries( dictionaries ) )
    

    设置语言(store.index.js-continue)

    const languages = [
        {
            code: 'en-US',
            name: 'english'
        },
        {
            code: 'ko-KR',
            name: 'Korean'
        },
        //...
    ]
    
    store.dispatch( i18nActions.setLanguages( languages ) )
    store.dispatch( i18nActions.setCurrentLanguage( 'en-US' ) ) <<<It's not working?
    
    export default store;
    

    我给你打电话 <Loc /> 翻译为当前语言的文本组件。

    <H2 style={styles.locationTitle}><Loc locKey="oh"/></H2> <-此处出错

    是的 console.log('hi') 我的店似乎运转正常。我在Android上运行这个。

    1 回复  |  直到 6 年前
        1
  •  1
  •   derzunov    6 年前

    你能试着用 combineReducers( reducers ) 。似乎您的变量“reducers”是一个对象。但它必须是一个函数- https://redux.js.org/api-reference/createstore