javascript - 从 AntDesign 中选择时停止传播
问题描述
我有下一个应用程序:https ://codesandbox.io/s/compassionate-snow-kjyqv?file=/index.js
import React from "react";
import ReactDOM from "react-dom";
import "antd/dist/antd.css";
import "./index.css";
import { Select } from "antd";
const { Option } = Select;
function handleChange(value) {
console.log(`selected ${value}`);
}
function click() {
console.log("click");
}
function onMouseEnter(e) {
e.stopPropagation();
}
ReactDOM.render(
<>
<div className="click" onClick={click}>
<Select
onMouseEnter={onMouseEnter}
defaultValue="lucy"
style={{ width: 120 }}
onChange={handleChange}
>
<Option value="jack">Jack</Option>
<Option value="lucy">Lucy</Option>
</Select>
</div>
</>,
document.getElementById("container")
);
我想,当用户单击红色区域以出现在控制台中时,单词click
,但是当用户单击选择打开它时,:
function click() {
console.log("click");
}
不应该工作,这就是我插入的原因:
function onMouseEnter(e) {
e.stopPropagation();
}
..但无论如何 stopPropagation 不起作用,当我单击选择上述功能时也起作用。
问题:如何创建下一个场景?: -- 当用户单击 kson 红色区域以应用console.log('work')
时,但何时单击选择时,console.log 应该不可见。
解决方案
stopPropogation 不会停止默认行为,您需要 preventDefault。您应该使用 onClick 事件而不是 mouseEnter。
function onMouseEnter(e) {
e.stopPropagation();
e.preventDefault();
}
<Select
onClick={onMouseEnter}
defaultValue="lucy"
style={{ width: 120 }}
onChange={handleChange}
>
推荐阅读
- shell - 如何将 .txt 文件的内容逐行附加到另一个 .txt 文件?
- javascript - 在 JavaScript 中使用函数参数
- python - 初学者 Python 数学路障
- machine-learning - 为什么网络模型平均值可以提高测试集的性能?
- python - 使用 type 代替 cat
- swift - 就字节数据的可变性而言,这是如何工作的?
- postman - 尝试为 API Gateway 设置用户池身份验证
- kubernetes - Kubectl 错误:对象已被修改;请将您的更改应用到最新版本,然后重试
- javascript - 使用 momentjs 格式化当前日期和时间
- jquery - jQuery Collapse 在我的模式中不起作用