Javascript 为什么在react js中选中复选框后隐藏其他元素?

Javascript 为什么在react js中选中复选框后隐藏其他元素?,javascript,reactjs,recursion,Javascript,Reactjs,Recursion,我对复选框做了一个简单的演示。我还在我的父组件上实现了onchange处理程序。但是当我选中第一个父组件时,我遇到了一个问题,它隐藏了其他父组件 这是我的第一个州 选中第一个父项后将隐藏其他父项 其次,我无法选中子复选框。实际上,我的递归函数中有一个问题 const setChecked = (data, label) => { // grab the first element console.log(data); const [current, ...rest] =

我对
复选框
做了一个简单的演示。我还在我的父组件上实现了
onchange处理程序
。但是当我选中
第一个父组件
时,我遇到了一个问题,它隐藏了其他
父组件

这是我的第一个州

选中第一个父项
将隐藏其他父项

其次,我无法选中
子复选框
。实际上,我的
递归
函数中有一个问题

const setChecked = (data, label) => {
  // grab the first element
  console.log(data);

  const [current, ...rest] = data;

  return current && current.label === label
    ? [
        {
          ...current,
          checked: !current.checked,
          ...rest
        }
      ]
    : [current, ...setChecked(rest, label)];
};
这是我的全部密码


这应该是可行的,希望下面的代码是不言自明的

const setChecked=(数据、标签)=>{
返回数据.map((currData)=>{
const{childrens}=currData;
const haschilds=childrens&&childrens.length>0;
if(currData.label==标签){
返回{…currData,选中:!currData.checked};
}
如果(有孩子){
返回{…currData,childrens:setChecked(childrens,label)};
}
返回数据;
});
};
为避免
警告:组件正在更改非受控输入…
,将
选中的
道具传递给复选框时,请使用
i.checked===true

。。。
{
handleChange(i);
设置超时(ab,2000);
}}
/>