目前在我的 React-Redux 应用程序中,我想使用 React 将 show 的状态设置为 false 或 true。设置为 true 时,应用程序将初始化。(有多个组件,所以使用 react/redux 来做这件事是有意义的。)
但是,我当前的问题是,即使我使用 react redux 连接了我的应用程序,并且使用提供程序连接了我的商店,调度操作仍将被调用,而不更新商店(我正在使用 redux 开发工具进行仔细检查,以及应用程序测试)。
我附上了我认为相关的代码,但是,整个代码库可以作为专门为这个问题制作的分支在这里。我在这方面花了很长时间(实际上是轻描淡写),任何贡献都将不胜感激。
组件相关代码
hideBlock(){
const{dispatch} = this.props;
dispatch(hideBlock);
}
return(
<div className = "works">
<button id="show-block" type="button" className="show-hide-button" onClick={this.showBlock}>show</button>
<button id="hide-block" type="button" className="show-hide-button" onClick={this.hideBlock}>Hide</button>
</div>
);
function mapStateToProps(state) {
const {environment} = state;
return{
environment
}
}
export default connect(mapStateToProps)(Form);
行动
import * as types from "../constants/ActionTypes";
export function showBlock(show) {
return {
type: types.SHOW,
show: true
};
}
export function hideBlock(hide) {
return {
type: types.HIDE,
show: false
};
}
减速器
import * as types from "../constants/ActionTypes";
const initialState = {
show: false
};
export default function environment(state = initialState, action) {
switch(action.type) {
case types.HIDE:
return Object.assign({}, state, {
type: types.HIDE
});
case types.SHOW:
return Object.assign({}, state, {
type: types.SHOW
});
default:
return state;
}
}
谢谢你,再次非常感谢任何帮助。