1,更新数组时,
chackItemValueData.splice(chackItemValueIndex, 1, {
checkName: saftyCheckItem.dataKey,
checkValue: value.toString(),
});
console.log(chackItemValueData);
setChackItemValueData([...chackItemValueData]);
使用setState更新使用拓展运算符...,不然数据是原来的地址 ,不会触发render
自定义表单的onChange也是如此
<div
key={dataItem.value}
className={cn(
ItemClassName,
isActive
? 'bg-color-primary text-white'
: 'bg-color-bg-layout text-color-text-secondary',
disabled && 'cursor-not-allowed opacity-70 hover:init',
)}
// onClick={() => {
// clickOne && clickOne(dataItem.value);
// }}
onClick={() => {
if (!disabled) {
if (saftyCheckItem.enum_DataType == 4) {
//单选
onChange?.(value !== dataItem.value ? dataItem.value : undefined);
} else if (saftyCheckItem.enum_DataType == 6) {
//多选
let arr = value ? value : [];
if (arr && Array.isArray(arr)) {
if (arr.some((ele) => ele == dataItem.value)) {
arr = arr.filter((ele) => ele != dataItem.value);
} else {
arr.push(dataItem.value);
}
}
onChange?.(arr && Array.isArray(arr) ? [...arr] : []);
console.log(arr);
}
}
}}
>
{dataItem.label}
</div>