首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React MUI -不能取消选择多个选择中的所有项

React MUI -不能取消选择多个选择中的所有项
EN

Stack Overflow用户
提问于 2020-09-29 20:55:42
回答 1查看 1.2K关注 0票数 2

我正在使用MUI“多重选择”/“多个复选框选择”。

My goal ->打开一个模式,setState一些初始值,然后完全控制select。

My initial ->当前,可以重新选择初始项,一旦它们被选中,就不能取消选择。

下面是与此代码沙箱相关的MUI问题中的一个梅问题

到目前为止,->我已经在沙箱中包含了3组状态

代码语言:javascript
运行
复制
newOptions is equal to [options[1]]

1 - value: [options[1]]  -> Success
2 - value: options.slice(0,1)  -> Success
3 - value: newOptions  -> Failure

通过对不同状态进行注释,您可以看到所描述的行为,并且这些项将无法从多选择中删除。

我想知道是否有人可以描述这种行为以及=>的解决方案,尽管我已经找到了一些成功(使用[optionsx]),但是这并不支持我在项目中所做的事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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“时,即使是两个对象的属性和值都是相同的,但是对象本身并不是相等的。

代码语言:javascript
运行
复制
var jangoFett = {
    occupation: "Bounty Hunter",
    genetics: "superb"
};

var bobaFett = {
    occupation: "Bounty Hunter",
    genetics: "superb"
};

// Outputs: false
console.log(bobaFett === jangoFett);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64127522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档