Pau*_*ocq 5 javascript reactjs redux react-redux
我在react-redux Provider上遇到问题:我将路由器从index.js中移到了routing.js文件中。我使用了提供程序来向我的路由组件提供有关商店的知识,但是在执行到达render方法之前,我得到了一个奇怪的警告:
Warning: Failed context type: The context `store.isRequired` is marked as required in `Routing`, but its value is `undefined`.
即使我摆脱.isRequiredin 也会发生这种情况Routing.contextTypes。而且,如果我在render函数的开头放置了一条调试器语句,那么它似乎this.context并不是未定义的,并且我的应用程序运行得很吸引人。我想知道我是否做错了什么,或者它可能是react-redux Provider的错误或什么。
这是我的代码:
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { setLanguage } from 'redux-i18n';
import I18n from 'redux-i18n/immutable';
import configureStore from './store/configure_store';
import { Routing } from './routing';
import translations from './translations';
import '../scss/index.scss';
const store = configureStore();
store.dispatch(setLanguage(navigator.language));
ReactDOM.render(
<Provider store={ store }>
<I18n translations={ translations }>
<Routing />
</I18n>
</Provider>,
document.getElementById("root")
);
Run Code Online (Sandbox Code Playgroud)
routing.js(为阅读目的而简化)
import React from 'react';
import { Route, IndexRedirect, IndexRoute, Router, browserHistory } from 'react-router';
import AppContainer from './components/App/App';
import Base from './components/Root/Base';
import BaseInProject from './components/App/BaseInProject';
import { ProjectListContainer } from './components/App/Projects/ProjectsList';
export class Routing extends React.Component {
render() {
const { store } = this.context;
const beforeAppRouteEnter = (nextState, replace, callback) => {
// This function needs to store.dispatch some stuff
};
// Some other router functions
const routes = (
<Route path='/' component={ Base }>
<Route component={ AppContainer } onEnter={ beforeAppRouteEnter }>
<IndexRoute component={ ProjectListContainer } />
// Some other routes
<IndexRedirect to='media' />
</Route>
</Route>
</Route>
);
return (
<Router history={ browserHistory }>{ routes }</Router>
);
}
}
Routing.contextTypes = {
store: React.PropTypes.shape(React.PropTypes.any)
};
Run Code Online (Sandbox Code Playgroud)
谢谢!
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |