reactjs - React Hooks addEventListener 未定义
问题描述
我是 React 钩子的新手,我只是想知道为什么 addEventListener 是未定义的,即使我在useEffect
.
function useHover() {
const ref = useRef();
const [hovered, setHovered] = useState(true);
const enter = () => setHovered(true);
const leave = () => setHovered(false);
useEffect(() => {
ref.current.addEventListener('mouseenter', enter);
ref.current.addEventListener('mouseleave', leave);
return () => {
ref.current.removeEventListener('mouseenter', enter);
ref.current.removeventListener('mouseleave', leave);
};
}, [ref]);
return [ref, hovered];
}`enter code here`
解决方案
您可以将这些命令嵌套在 componentDidMount/componentWillMount 中,并且应该暂存这些侦听器,但这不是最佳实践。
这是我在处理事件时遵循的文档。
推荐阅读
- python - 为什么 Django 不向我的模型表添加条目?
- javascript - 间歇地将对象推送到数组
- python - 验证 python 导入 - 为什么会出现这种歧义?
- amazon-web-services - aws elastic beanstalk中“container_commands”中的“commands”类型是什么
- angular - 如何使用 angular-spectator 测试嵌套依赖项
- shell - 在IPython中运行没有感叹号的可执行文件?
- python-3.x - Parsing Yaml nested configuration with ruamel.yaml in Python3
- javascript - Gulp 在源文件数组上顺序执行相同任务
- php - 这些天你如何在 macos 上安装 interbase.so 和 pdo_firebird.so php 扩展?
- redis - 将现有缓存移动到 Redis 集群