要实现选择待选状态的值时只能选择一个,选择第二个时给出提示并且不能选择第二个,可以在 handleChange
方法中添加逻辑来处理这个需求。下面是修改后的代码示例:
const handleChange = (nextTargetKeys, direction, moveKeys) => {
if (direction === 'right') {
// 如果尝试选择多个值,给出提示并且不允许选择
if (nextTargetKeys.length > 1) {
message.warning('只能选择一个标签,请取消选择其他标签。');
targetKeys.value = [moveKeys[moveKeys.length - 1]]; // 保留最后一个选中的值
} else {
targetKeys.value = nextTargetKeys;
}
} else if (direction === 'left') {
// 如果是从已选状态移回待选状态,直接更新 targetKeys
targetKeys.value = nextTargetKeys;
}
};
修改说明:
- 在尝试将多个值移动到 “已选状态” 时,通过
if (nextTargetKeys.length > 1)
检查当前目标键的数量。 - 如果超过一个,则使用
message.warning
提示用户,并仅保留最后一个被选中的标签 (moveKeys[moveKeys.length - 1]
) 到targetKeys
中。 - 当方向是向左(即移回待选状态)时,不需要更改任何逻辑,依旧可以正常操作。
这样,当用户尝试多次选择标签时,会收到警告消息,并且只有最后一次的点击会有效果。
内容由零声教学AI助手提供,问题来源于学员提问