reactjs 获取错误“Unable to find node on an unmounted component”- React测试库

rbl8hiat  于 2023-06-29  发布在  React
关注(0)|答案(1)|浏览(143)

我正在使用react测试库对组件进行单元测试。但是当我渲染组件时,我得到了这个错误:
无法在卸载的组件上找到节点

代码:

import React from 'react';
import {render, fireEvent, waitFor, screen} from '@testing-library/react';
import '@testing-library/jest-dom';
import {server} from '../__mocks__/server.mock';
import Deprovision from '../Deprovision';

beforeAll(() => server.listen());
afterEach(() => server.resetHandlers());
afterAll(() => server.close());

test('Deprovision renders correctly.', async () => {
    console.log(TEST_BASE_URL);
    render(<Deprovision
        onRef={() => {}}
        close={() => {}}
        updateDepID={() => {}}
    />);
});

组件在init上执行大量异步调用,然后更新组件的状态。
但是看起来测试在异步调用有机会更新状态之前就删除了组件。
这适用于没有异步调用的基本组件。
我错过了什么?

2guxujil

2guxujil1#

在搜索了这么多地方之后,原来是React版本的问题。
我使用的是React@17.0.2版本。导致上述问题的原因。
请使用React@16.10.0,这将起作用。

相关问题