我对redux还是很陌生,并且一直在尝试调试此问题。基本上,我有两个无关的组件(不是父子,子父母或兄弟姐妹),我想利用Redux进行全局状态管理,以将数据从一个组件传递到另一个。
从某种意义上说,该代码可以正常工作,即组件A可以将数据发送到商店。在组件A上记录store.getState(),我能够看到新的更新状态。但是,在组件B上记录store.getState()时,无法看到相同的更新状态。 (该项将为空)
使用ReduxDevTools扩展,我可以看到在调用onPress
方法之后组件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
任何帮助将不胜感激!谢谢