Redux存储针对不同的组件返回不同的状态(反应)

时间:2020-03-09 17:28:26

标签: javascript reactjs redux react-redux

我对redux还是很陌生,并且一直在尝试调试此问题。基本上,我有两个无关的组件(不是父子,子父母或兄弟姐妹),我想利用Redux进行全局状态管理,以将数据从一个组件传递到另一个。

从某种意义上说,该代码可以正常工作,即组件A可以将数据发送到商店。在组件A上记录store.getState(),我能够看到新的更新状态。但是,在组件B上记录store.getState()时,无法看到相同的更新状态。 (该项将为空)

使用ReduxDevTools扩展,我可以看到在调用onPress方法之后组件A中的状态已更新,但对于B没有更新。

组件A状态已更新

组件B的状态不变

组件A

class a extends Component {

 // implementation code

   onPress = r => {
      this.props.sendProblem(r)
      // console.log(store.getState())
   }

 // implementation code

 }

 A.propTypes = {
   sendProblem: PropTypes.func.isRequired
 };

 export default connect(null, {sendProblem})(A)

组件B

// implementation code 

componentDidMount() {
// console.log(store.getState())
}

// implementation code

B.propTypes = {
  item: PropTypes.object
}

const mapStateToProps = state => ({
   item: state.items.item
});

export default connect(mapStateToProps)(B);

**问题减少器**

import { ABC } from '../actions/types';

const initialState = {
    item: {}
}

export default function(state= initialState, action) {
    switch (action.type) { 
        case ABC: 
            return {
              ...state,
              item: action.payload
            } 
        default:
            return state; 
    }
}

**问题动作**

import {
   ABC
 } from "./types";

export const sendProblem = r => dispatch => {
     dispatch({
      type: ABC,
      payload: r
    })
};

**根减少剂**

// implementation code 

export default combineReducers({
  auth: authReducer,
  errors: errorReducer,
  items: problemReducer
});

// root reducer used in store.js to create store

任何帮助将不胜感激!谢谢

0 个答案:

没有答案