【发布时间】:2018-07-09 21:53:41
【问题描述】:
我很可能在这里错过了简单的答案。现在我的桌子上有一个三元组。如果选定的数组长度大于一个数字,则呈现一个禁用复选框的表格。我还为带有禁用复选框的表添加了一个不同的 handleClick 函数,该复选框只会取消选择。这实际上将复选框变为灰色(禁用它们)并允许用户取消选中,以便他们可以取回表格。问题是如果他们单击以选择尚未选中的内容(此时已禁用),它会删除所有选定的检查并再次启用表格以供选择。这是一个问题,因为基础数据实际上并未从我正在使用的实时数据库中删除。
所以我在代码沙箱上重新创建了这个问题。 (可能需要一秒钟才能加载)
- 选择 2(应该禁用表格)
- 然后选择任何未选中的复选框,它将删除所有禁用的检查并重新启用 供选择的表格。
https://codesandbox.io/s/yw8zl6oqk9
基本上,我想在给定数量的选择处停止用户。而且我只希望用户能够取消选择当前选择的项目。我真的不认为这是最好的方法。我宁愿保持启用检查颜色并将用户停止在 3(任何数字)。如果它大于 3,我已经在 handleClick 函数中尝试了一些其他方法,但它给用户留下了他们无法取消选中或检查的表格。如果您知道如何解决此问题,请告诉我。谢谢!
我被要求提供一个更清晰的用例,所以这里是。
用户只能在列表中选择2个
一旦用户选择了 2,他们就不能再选择任何其他 项目
用户可以取消选择一个或多个选择,然后选择最多 2 个不同的 再次项目
- 用户可以继续选择最多 2 个项目并取消选择以恢复选择能力,只要他们喜欢
The issue im having with this use case is the when the user has selected 2, selectability is supposed to be disabled, when an item that is not selected is selected, it deselects the 2 items that were selected.我发布的沙箱反映了这个问题。
【问题讨论】:
-
您能否清楚地解释一下您首先要达到的目标?用例是什么?
-
我想限制用户可以进行的数量或选择。当用户点击该数字时,我需要阻止用户创建更多选择。但是他们需要能够取消选择他们已经拥有的内容,以便他们可以选择列表中的其他项目。我会尝试在帖子中更新一个用例。
-
用户案例见上文。希望这更清晰和简化。
标签: javascript reactjs material-ui