2016-02-12 4 views
1

У меня есть простое (на данный момент) приложение, в котором используется реакция-маршрутизатор и редукция, и я хотел бы добавить к нему функции интернационализации.реагировать, конфигурация i18n, редукция и реакция маршрутизатора

Я установил пакет npm react-i18next и смог установить и запустить приведенный пример. Я добавил соответствующий импорт в свое приложение и добавил теги i18n к корневому методу рендеринга.

Когда я добавляю I18nextProvider тегов к методу визуализации, я получаю ошибку

can't find module 'react'

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

рендер метод, который я использую:

import React from 'react' 
import ReactDOM from 'react-dom'  
....  

ReactDOM.render(
    <I18nextProvider i18n={ i18n }> 
    <Provider store={store}> 
    <div> 
     <Router history={history}> 
     <Route path="/" component={App}> 
      <IndexRoute component={DashboardIndex}/> 
      <Route path="about" component={About}/> 
      <Route path="collectors" component={Collectors}/> 
     </Route> 
     </Router> 
     <DevTools /> 
    </div> 
    </Provider> 
    </I18nextProvider>, 
    document.getElementById('app') 

Edit: Я начал пустое приложение с помощью йо реагировать генератора, и это дает ту же самую проблему, так что я могу только предположить, это проблема связана с сборкой webpack

Я очень новичок в реакции/redux et al. но при отсутствии большого количества помощи в Интернете действительно будет признательна за любую помощь.

Полный стек трассировки:

Uncaught Error: Cannot find module 'react'o @ index.js?0f21:1(anonymous function) @ index.js?0f21:1r.4.react @ index.js?0f21:1o @ index.js?0f21:1(anonymous function) @ index.

js?0f21:1r.2../I18nextProvider @ index.js?0f21:1o @ index.js?0f21:1e @ index.js?0f21:1(anonymous function) @ index.js?0f21:1c @ index.js?0f21:1(anonymous function) @ index.js?0f21:1(anonymous function) @ app.js:4127__webpack_require__ @ app.js:535fn @ app.js:76(anonymous function) @ VM91841:35(anonymous function) @ index.js?9552:67(anonymous function) @ index.js?9552:67(anonymous function) @ app.js:1024__webpack_require__ @ app.js:535fn @ app.js:76(anonymous function) @ app.js:567__webpack_require__ @ app.js:535(anonymous function) @ app.js:558(anonymous function) @ app.js:561 client?8a21:22 [WDS] Hot Module Replacement enabled.

+0

Имеет ли ваша ошибка трассировку стека? Это поможет точно определить, что происходит не так :) –

+0

добавлен. Я вижу некоторые упоминания о _webpack_require, но не знаю, что это значит – KerSplosh

+0

А, это не будет особенно полезно, если вы не включите исходные карты в webpack (http://stackoverflow.com/a/31101665/801702). '__webpack_require__' - это функция, предоставляемая webpack для замены' require'/'import' в вашем пакете, поэтому по какой-то причине ваша библиотека i18n изо всех сил пытается импортировать React. –

ответ

0

Я ни разу не дошел до сути этой проблемы с технической точки зрения, поэтому реорганизован для использования react-intl для моих потребностей в интернационализации. Он отлично работает для меня с redux.

0

ли вы требуете Реагируйте на том, что JS файл, имеющий

ReactDOM.render(
    <I189nextProvider i18n={ i18n }> 
    <Provider store={store}> 
    <div> 
     <Router history={history}> 
     <Route path="/" component={App}> 
      <IndexRoute component={DashboardIndex}/> 
      <Route path="about" component={About}/> 
      <Route path="collectors" component={Collectors}/> 
     </Route> 
     </Router> 
     <DevTools /> 
    </div> 
    </Provider> 
    </I189nextProvider>, 
    document.getElementById('app') 

, если вы не имеете проблемы ... все ваши JSX конвертируется to React.createComponent (...)

Не требуется Реакция приведет к ошибке связывания.

+0

, что вы имеете в виду?У меня есть «import React from» response ''statement - я упомянул в OP – KerSplosh

+1

[Этот набор тестов, похоже, предполагает иное] (https://github.com/webpack/webpack/blob/master/test/cases/concord /inner-modules-and-extensions/index.js). Я могу ошибаться. База данных webpack безумна. –

+0

yes..you нужно импортировать Реагировать от «реагировать» сверху ... см. Https://babeljs.io/repl/#?experimental=false&evaluate=true&loose=false&spec=false&code=%3Cdiv%20%2F%3E Это то, к чему ваш код переводится. Использование, например. eslint предупредил бы вас о недостатке реагирования. – jamuhl