我在React中创建了两个包含相同选项值的选择菜单。当用户从第一个列表(或第二个列表)中选择选项1时,该选项应该从第二个菜单中删除/隐藏,这样用户就没有机会选择重复的选项。这些选项被Map为一个对象数组。由于我还是编程新手,我不确定解决这个问题的最佳方法。
我尝试应用一个filter方法来更新列表选项。我希望它列出所有选项值!==到第一个选择的选项,但是得到了一个typeError,并且无法越过它。
我发现这个链接在这里是一样的,我正在尝试做的,但代码是相当旧的,因为我仍然是新的编程,我不知道如何重构它:
https://stackoverflow.com/questions/26137309/remove-selected-option-from-another-select-box
非常感谢任何建议/帮助。
4条答案
按热度按时间qjp7pelc1#
选项:用于选择的全局选项状态/对象。
如果你可以提供一个代码片段,我可以帮助你进一步,但首先要尝试实现这一点。
dldeef672#
vfwfrxfs3#
如果你得到一个类型错误,最好共享错误和代码片段。但是如果有两个选择选项,在开始时显示相同的选项,但是当一个被选中时,选项会从第二个列表中动态删除。为此,我建议保持两个下拉列表的状态。比如list1和list2。当你从任何一个下拉列表中选择了输入时,应该调用一个点击处理方法。然后更新两个列表值,你可以使用过滤器来过滤掉值,并自定义列表。这将触发组件的重新呈现,我猜你会得到你想要的结果。只是为了性能震动和代码和逻辑分裂,使一个新的组件包含所有这些下拉逻辑。
6tdlim6h4#
您可以声明两个状态变量来存储每个下拉列表的选定值,并基于状态值实现列表的过滤器。
请参考我编写的单选下拉菜单的示例实现:https://codesandbox.io/s/cranky-liskov-o07jo0?file=/src/App.js