关于redux的一个问题

1.我在main.js里边创建了store

let store = createStore(reducers, initState);

store.subscribe(() => {
    console.log(store.getState());
})

export default store;

2.我用Provider将store传进context

reactDom.render(
    <Provider store={ store }>
        <Root/>
    </Provider>,
    document.getElementById("main")
);

3.我在子页面可以拿到store,但是dispatch之后,store变了,却没有触发state更改并更新试图,这是什么原因呢?

阅读 2.5k
3 个回答

Question组件内是不是没有connect到store?

const mapStateToProps = (state) => {
  return {
    step: state.step
  }
}

export default connect(mapStateToProps, null)(Question)

因为你的subscribe里面只是打印了state,并没有监听组件,所以你需要监听一下最外层的render方法

import React, {PropTypes, Compenteds} from "react";
import { connect } from 'react-redux';
const PropTypes = {}
class Stroe extends Compenteds {
constructor(){super(props)}
render(){return(<div>填写虚拟DOM</div>)}}
this.propTypes = PropTypes;
const mapStateToProps = (state) => ({});
const mapDispatchToProps = (Dispatch) => ({});
export default connect(mapStateToProps, mapDispatchToProps)(Stroe);

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