要在待选状态中限制用户只能选择一个选项,并在尝试选择第二个选项时弹出提示,我们可以对handleChange
函数进行修改,以便检查是否已经有一个已被选择的选项。以下是相应的修改:
const handleChange = (nextTargetKeys, direction, moveKeys) => {
if (direction === 'right') {
// 如果是从待选状态移动到已选状态
if (nextTargetKeys.length > 1) {
// 如果尝试选择多个值,弹出提示并不让选择
message.warning('只能选择一个标签');
// 只保留最后一个选中的值
const lastSelectedKey = moveKeys[moveKeys.length - 1];
targetKeys.value = [lastSelectedKey];
selectedKeys.value = [lastSelectedKey]; // 确保selectedKeys也反映最新的状态
} else {
targetKeys.value = nextTargetKeys;
}
} else if (direction === 'left') {
// 如果是从已选状态移回待选状态
targetKeys.value = nextTargetKeys;
}
};
修改解释:
- 在
handleChange
函数中,当用户尝试将多个标签添加到已选状态时,我们使用message.warning()
弹出警告信息,提示用户只能选择一个标签。 - 我们只保留最后一个被移动的标签,同时更新
selectedKeys
的值以确保 UI 的一致性。
通过这种方式,你可以有效地控制用户只能在待选状态中选择一个标签。如果他们尝试选择多个标签,就会看到相应的提示。
内容由零声教学AI助手提供,问题来源于学员提问