reactjs - React - 重新渲染组件后失去焦点
问题描述
悬停在一些图块上后,我想显示上下文菜单。问题是当我点击某个菜单项时,tile 组件被重新渲染,我失去焦点,然后我看不到我的上下文菜单。首先,我必须用鼠标离开我的组件,然后再将鼠标设置在组件上以显示上下文菜单。我的代码(功能组件):
return (
<div key={element.id} className={classNames(styles.componentPosition)}>
<div
// key={getRandomValue()}
ref={wrapperRef}
data-ctx="abc"
onMouseEnter={() => setIsMenuVisible(true)}
onMouseLeave={() => setIsMenuVisible(false)}
>
{menuItems.length ? (
<ContextMenu isVisible={isMenuVisible}>
<SelectMenu
backgroundOnHover="dark"
disabled={false}
icon="vertical"
isOpen={false}
options={menuItems}
position={getPosition(wrapperRef.current)}
/>
/>
如何解决onMouseEnter
重新渲染后无法解决的问题?也许我应该以某种方式检查我的鼠标在重新渲染后是否仍然在我的组件上,因为在重新渲染组件后,onMouseEnter
即使我的鼠标仍然在我的组件上也不会调用事件(这意味着我的组件中的上下文菜单应该是可见的)
解决方案
推荐阅读
- sapui5 - 将内容动态添加到 simpleForm 会导致列未对齐
- python - 熊猫没有更新所有行
- flutter - 在颤动中将新元素添加到另一个屏幕的列表中
- c# - Azure 表存储:如果项目不存在则添加项目
- redirect - 跟踪收集的数据后应该使用什么 HTTP 重定向代码?
- java - 断言一个模拟的静态方法被多次调用,每次都有一个特定的参数
- azure - Azure VPN 用户细分
- c - 如何在C中的表格中查找数字的位置?
- vue.js - 如何向下滚动到其 ID 作为 Vue 中的查询参数包含的项目?
- php - 在 Laravel 中添加自定义 mimeType 猜测器