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);
}}
/>