【发布时间】:2021-01-25 19:00:13
【问题描述】:
我有一个在 React 组件上运行的测试:
describe(`TheDate Component`, () => {
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<TheDate />, div);
ReactDOM.unmountComponentAtNode(div);
})
})
我读到我必须使用“unmountComponentAtNode”,老实说我不太了解unmountComponentAtNode() 的官方文档:
从 DOM 中移除已安装的 React 组件并清理其事件处理程序和状态。如果容器中没有安装任何组件,则调用此函数不会执行任何操作。如果组件已卸载,则返回 true;如果没有要卸载的组件,则返回 false。
我是测试和 React 的新手。
【问题讨论】:
-
unmountComponentAtNode正确 从 DOM 中删除组件(而不是直接删除 DOM 节点,这是不安全的) - 你能更具体地说明你没有做什么吗?不明白? -
我想我不明白为什么它是必要的,在这个测试中它正在创建一个来放入 TheDate 组件以查看它是否正确呈现。我很困惑为什么您需要在测试运行后删除该组件。@GenevieveKuzak 取消测试的副作用只是一个好习惯。你可能有更多的测试要遵循这个,它们可能会受到这个测试的副作用的影响。开始“干净”的每个测试。哦……谢谢!
标签: javascript reactjs