Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中react redux中的所有功能复选框_Javascript_Reactjs_React Redux - Fatal编程技术网

Javascript 选中react redux中的所有功能复选框

Javascript 选中react redux中的所有功能复选框,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我对react redux是新手。我试图使选择所有复选框功能与个人复选框选择也。选中所有单个复选框后,选择所有复选框。我已经有很多次这样做了,但我已经走错了方向 Action.js:- const SELECT\u CHECKBOX=“SELECT\u CHECKBOX”; const SELECT_ALL_CHECK_BOX=“SELECT_ALL_CHECK_BOX”; export const selectCheckBox=(e,id)=>{ 返回{ 类型:选中复选框, 事件:e.targ

我对react redux是新手。我试图使选择所有复选框功能与个人复选框选择也。选中所有单个复选框后,选择所有复选框。我已经有很多次这样做了,但我已经走错了方向

Action.js:-

const SELECT\u CHECKBOX=“SELECT\u CHECKBOX”;
const SELECT_ALL_CHECK_BOX=“SELECT_ALL_CHECK_BOX”;
export const selectCheckBox=(e,id)=>{
返回{
类型:选中复选框,
事件:e.target.checked,
checkBoxID:id
}
}
export const selectAllCheckBox=(e)=>{
返回{
类型:选中所有复选框,
事件:e.target.checked,
}
}
Reducer.js:-

const checkBoxSelects={
selectAll:false,
复选框:[
{标签:“一”,勾选:false},
{标签:“两个”,选中:true},
{标签:“三”,勾选:假},
{标签:“四”,勾选:假},
]
}
导出常量checkBoxReducer=(状态=checkBoxSelects,操作)=>{
开关(动作类型){
案例选择复选框:
let checkBox=[…state.checkBox];
复选框[action.checkBoxID].checked=action.event
让selectAll=state.checkBox.every(item=>item.checked==true)?true:false
设newArray={
……国家,
选择全部,
复选框,
}
返回新数组;
默认:返回状态;
}
}
导出常量selectAllReducer=(状态=复选框Selects,操作)=>{
开关(动作类型){
案例选择所有复选框:
state.selectAll=action.event
state.checkBox.forEach(item=>item.checked=action.event)
返回{…状态};
默认:返回状态;
}
}
reducerIndex.js

import{checkBoxReducer,从“/reducer”中选择AllReducer};
从'redux'导入{combinereducer};
const rootreducer=组合减缩器({
checkBoxHandler:checkBoxReducer,
selectAllState:selectAllReducer,
})
Containet.js:-

从“React”导入React
从“/action/index”导入{selectCheckBox,selectAllCheckBox}
从'react redux'导入{connect};
功能容器(道具){
返回(
props.selectAllFn(e)}
/>
全选
{props.checkBoxData.map((项,i)=>{
返回(
props.onChangeSelect(e,i)}
/>
{item.label}
)  
})}
)
}
常量mapStateToProps=(状态)=>{
返回{
checkBoxData:state.checkBoxHandler.checkBox,
slectAll:state.checkBoxHandler.selectAll,
}
}
const mapDispatchToProps=调度=>{
返回{
onChangeSelect:(e,i)=>dispatch(selectCheckBox(e,i)),
selectAllFn:(e)=>dispatch(selectAllCheckBox(e)),
}
}
导出默认连接(
MapStateTops,
mapDispatchToProps
)(CakeContainer)
导出默认rootreducer;

在您的
Reducer.js
中,您设置状态的方式在我看来是不正确的。这两个组件的原始状态现在为

{
   selectAll: false,
   checkBox : [
        {label:"one",checked:false},
        {label:"two",checked:true},
        {label:"three",checked:false},
        {label:"four",checked:false},
   ]
}
这意味着在您使用
combineReducers
之后,您的店铺的最终形状将如下所示

{
  checkBoxHandler: {
    selectAll: false,
    checkBox : [
        {label:"one",checked:false},
        {label:"two",checked:true},
        {label:"three",checked:false},
        {label:"four",checked:false},
   ]
  },
  selectAllState: {
    selectAll: false,
    checkBox : [
        {label:"one",checked:false},
        {label:"two",checked:true},
        {label:"three",checked:false},
        {label:"four",checked:false},
   ]
  }
}


我相信这不是你想要的。另外,请添加您想要实现的更多描述。

感谢您的重播。我想在选中“全选”复选框后实现全选