我正在使用MUI“多重选择”/“多个复选框选择”。
My goal ->打开一个模式,setState一些初始值,然后完全控制select。
My initial ->当前,可以重新选择初始项,一旦它们被选中,就不能取消选择。
到目前为止,->我已经在沙箱中包含了3组状态
newOptions is equal to [options[1]]
1 - value: [options[1]] -> Success
2 - value: options.slice(0,1) -> Success
3 - value: newOptions -> Failure
通过对不同状态进行注释,您可以看到所描述的行为,并且这些项将无法从多选择中删除。
我想知道是否有人可以描述这种行为以及=>的解决方案,尽管我已经找到了一些成功(使用[optionsx]),但是这并不支持我在项目中所做的事情。
发布于 2020-09-29 23:43:27
正如在https://github.com/mui-org/material-ui/issues/16775中注释的那样,您可以使用对象的引用作为默认值(例如https://codesandbox.io/s/create-react-app-vgyz6 )来修复这个问题。
当使用对象的引用时,select组件默认使用我认为的引用相等检查,因此取消选择是有效的。
在Javascript中,当您使用第三种方法"3 - value: newOptions -> Failure“时,即使是两个对象的属性和值都是相同的,但是对象本身并不是相等的。
var jangoFett = {
occupation: "Bounty Hunter",
genetics: "superb"
};
var bobaFett = {
occupation: "Bounty Hunter",
genetics: "superb"
};
// Outputs: false
console.log(bobaFett === jangoFett);
https://stackoverflow.com/questions/64127522
复制相似问题