【发布时间】:2022-01-16 09:33:30
【问题描述】:
当我尝试进行测试时
import React from "react";
import {EventsLoadingContext} from "../../../src/components/data-admin/context/EventsLoadingContext";
import DataAdmin from "../../../src/components/data-admin/DataAdmin";
import { configure, mount, shallow } from "enzyme";
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });
it("should render DataAdmin component", () => {
const component = shallow(<DataAdmin />, {context: EventsLoadingContext});
const dataTable = component.find(".table-container");
expect(dataTable.length).toBe(1);
});
在我拥有的上下文组件中:
export const EventsLoadingContext = createContext();
export const WithEventsLoadingContext = ({children}) => {
const [backendEvents, setBackendEvents] = useState([]);
const [integrationEvents, setIntegrationEvents] = useState([]);
const [allEvents, setAllEvents] = useState([]);
// ...
const value = {
preparedEvents,
dropdownItems,
dropdownClicked, setDropdownClicked,
loading,
updatedChanges, setUpdatedChanges
};
return (
<EventsLoadingContext.Provider value = {value}>
{children}
</EventsLoadingContext.Provider>
)
};
在我的 DataAdmin 组件中:
const DataAdmin = () => {
const {
preparedEvents,
dropdownItems,
dropdownClicked, setDropdownClicked,
loading,
updatedChanges, setUpdatedChanges
} = useContext(EventsLoadingContext);
等等。 那么我该如何解决呢? 那么我该如何解决呢?
【问题讨论】: