javascript - redux Uncaught Invariant Violation:在上下文中找不到“商店”
问题描述
我正在尝试在此组件中实现 redux,但出现以下错误,我该怎么做?
它向我显示的错误如下:
Uncaught Invariant Violation:在“Connect(App)”的上下文中找不到“store”。要么将根组件包装在 a 中,要么将自定义的 React 上下文提供者传递给连接选项中的 Connect(App),并将相应的 React 上下文消费者传递给 Connect(App)。
我知道可以这样做,但我不想将商店注入组件
store.dispatch(doResetStore());
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import { Switch, Route, BrowserRouter } from 'react-router-dom';
import environment from '../../commons/enviroment.const';
import Loader from '../loader/Loader';
import {connect} from "react-redux";
import store from '../../store/store';
import { routes as routesConst, context } from '../../commons/routes/routes.const';
import PropTypes from 'prop-types';
import MandateConsulting from '../mandate-consulting/MandateConsulting';
import { doResetStore } from '../../store/config/actions/actions';
class App extends Component {
componentWillMount(){
this.props.doResetStore();
}
render() {
return (
<Provider store={store}>
<BrowserRouter basename={context()}>
<div id={environment.appName} className="ui-kit-reset">
<Loader />
<Switch>
<Route exact path={routesConst.etd} component={MandateConsulting} />
<Route exact path={routesConst.default} component={MandateConsulting} />
</Switch>
</div>
</BrowserRouter>
</Provider>
);
}
}
App.propTypes = {
reset: PropTypes.any,
doResetStore: PropTypes.any,
};
export const mapStateToProps = state => ({
reset: state.config.reset
});
export const mapDispatchToProps = (dispatch) => ({
doResetStore: () => dispatch(doResetStore()),
});
export default connect(mapStateToProps, mapDispatchToProps)(App);
解决方案
如果你想让你的App
组件连接到 redux 存储,你需要App
用<Provider>
.
例如 - 可以使用App
ie的父组件来完成index.js
:
index.js
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
应用组件
...
render() {
return (
<BrowserRouter basename={context()}>
<div id={environment.appName} className="ui-kit-reset">
<Loader />
<Switch>
<Route exact path={routesConst.etd} component={MandateConsulting} />
<Route exact path={routesConst.default} component={MandateConsulting} />
</Switch>
</div>
</BrowserRouter>
);
}
...
推荐阅读
- kubernetes - Get .pem files in kubernetes with secret certificate
- selenium - 硒随机失效
- python - Changing grid position with a button in python
- amazon-web-services - AWS S3 File Copy - monitor when a file doesn't get moved into S3 Bucket
- url - mc_eid showing [UNIQID] in MailChimp link after enabling tracking
- java - 如何在 adnroid 中获取 recyclerView 项目的 X 和 Y 坐标?
- android-fragments - 带有 RecyclerView 滚动问题的垂直 ViewPager2
- android - Android : Branch SDK Api Error after changed date on device
- python - fuzzywuzzy match in python with if condition
- python - 使用小部件在 jupyter notebook 中显示 gif