4

react+ react-router+ redux+をセットアップしようとしましたがredux-simple-router、成功しませんでした。redux-simple-routerミックスに追加するまで、すべてが正常に機能しているように見えます。

"[TypeError: Cannot read property 'listen' of undefined]BrowserHistory オブジェクトを渡していますが。

ここにコードがあります -

import React from 'react'
import ReactDOM from 'react-dom'
import { Route, Router, BrowserHistory } from 'react-router';
import HashHistory from 'react-router/lib/HashHistory';
import { compose, combineReducers, applyMiddleware, createStore } from 'redux'
import { Provider } from 'react-redux'
import { syncHistory, routeReducer } from 'redux-simple-router'
import * as reducers from 'reducers/reducers'

import Blank from 'routes/blank';

export default (withHistory, onUpdate) => {


const reducer = combineReducers(Object.assign({}, reducers, {
  routing: routeReducer
}));

const reduxRouterMiddleware = syncHistory(BrowserHistory)
const createStoreWithMiddleware = applyMiddleware(reduxRouterMiddleware)(createStore)

const store = createStoreWithMiddleware(reducer)

  return (
    <Provider store={store}>
      <Router history={BrowserHistory} onUpdate={onUpdate}>
        <Route path='/' component={Blank} />
      </Router>
    </Provider>
  );
};

注:を使用して高速サーバーで反応テンプレートをコンパイルしていることを発見しましたrenderToString()。それが定義されていない理由ですか?? 私は何をしますか?

注2:代わりimport BrowserHistory from 'react-router/lib/BrowserHistory'に私が得た場合

TypeError: history.listen is not a function;

4

1 に答える 1

3

同じエラーが発生しました。ここのチュートリアルに従って取得しました: https://github.com/rackt/redux-simple-router/blob/e1df260888d1032d1e68c7694a06b457a4f0130f/README.md

すると、その上に次のメッセージが立っていることに気付きました。

注: この例では、現在バージョン 2.0.0-rc5 でリリースされている react-router の 2.0 API を使用しています。

次のようにパッケージをアップグレードします。

 history       ^1.17.0  →  ^2.0.0-rc2
 react-router   ^1.0.3  →  ^2.0.0-rc5

...エラーを解決しました。

于 2016-01-22T15:48:35.817 に答える