react-dedux用Provider,组件this.props获取不到store

index.js部分
const App = lazy(()=>import('./component/home/App'))
const PageA = lazy(()=>import('./component/page-a/Component'));

const store = createStore(Reducers);
console.log(store)
// 路由
const Root = ({store}) => (
    <Provider store={store}>
        <Router history={history}>
            <div>
                <Suspense fallback={<div>Loading...</div>}>
                    <Switch>
                        <Route exact path="/" component={App} />
                        <Route path="/page-a" component={PageA} />
                    </Switch>
                </Suspense>
            </div>
        </Router>
    </Provider>);

ReactDOM.render(
    Root(store), 
    document.getElementById('root')
);

store 打印出来是有的

在App组件里面只打印this.props只打印出来了history的值
阅读 3.3k
2 个回答
const Root = (store) => (
    <Provider store={store}>
        <Router history={history}>
            <div>
                <Suspense fallback={<div>Loading...</div>}>
                    <Switch>
                        <Route exact path="/" component={App} />
                        <Route path="/page-a" component={PageA} />
                    </Switch>
                </Suspense>
            </div>
        </Router>
    </Provider>);

组件还需要被connect起来,声明要获取store里的哪些字段

import { connect } from 'react-redux'
class Component extends React.Component {
   render() {
       console.log(this.props)     
   }
}
const mapStateToProps = state => {
   return {哪些你需要的值}
}
const mapDispatchToProps = {
    ...
}

export default connect(mapStateToProps, mapDispatchToProps)(Component)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题