reactjs - React 测试库 - 如何发送“anchorEl”作为道具?
问题描述
我有一个显示材质 UI 菜单的组件,并从父组件获取 anchorEl。我想测试这个组件,但我不知道我应该发送什么作为 anchorEl 道具
我的组件:
import React from 'react';
import { Menu, MenuItem } from '@material-ui/core';
import { PopulatedNode, NodeMenuItem } from '../types';
interface Props {
node: PopulatedNode;
items: NodeMenuItem[];
anchorEl: (EventTarget & HTMLButtonElement) | undefined;
onClose: () => void;
}
const NodeMenu = (props: Props) => {
const { node, items, anchorEl, onClose } = props;
return (
<Menu
id="node-menu"
anchorEl={anchorEl}
keepMounted
open={!!anchorEl}
onClose={onClose}
data-testid="node-menu"
>
{items.map(({ onClick, disabled, label }) => (
<MenuItem
key={label}
onClick={onClick}
>
{label}
</MenuItem>
))}
</Menu>
);
};
export default NodeMenu;
我想打开菜单,所以 anchorEl 必须是类型EventTarget & HTMLButtonElement
我该如何模拟它?
解决方案
您可以传递任何有效的 DOM 元素,即:
const mockAnchorEl = document.createElement("button");
推荐阅读
- intellij-idea - 无法在 IntelliJ 中使用处理 3
- python - 如何在 SQLAlchemy 中获得孤立的 SQL 语法错误
- visual-studio - 我在离线安装 Visual Studio 2017 时遇到问题
- merge - 使用“将 [分支名称] 合并到当前分支”选项的最佳方法是什么 - SourceTree
- pyinstaller - PyInstaller 导入错误
- microsoft-graph-api - 是否有任何 API 可用于在一个驱动器图 API 中获取垃圾(回收站)项目?
- javascript - PHP 无法上传图片,也看不到 $image 值。所有其他工作,都是关于 ajax,没有刷新表单
- angular - 使用 ng-bootstrap modal Angular 2+ 使模式淡入/淡出
- apache-beam - 在 Apache Beam 中将嵌套的重复字段组合成数组
- jquery - jQuery:在单独的 DIV 上克隆和剪切部分 SVG 图像