首页 > 解决方案 > 如何将样式组件及其子组件传递给另一个函数,以便我可以创建酶安装包装器辅助函数

问题描述

我创建了一个函数ScMountWithTheme辅助函数,我希望能够向这个函数传递两个参数,1)我要渲染的组件和 2)嵌套在这个组件内的子组件。目的是让我不必一遍又一遍地重写安装相同主题的代码。

我曾尝试通过孩子传递它并访问它,但这似乎不起作用。我试图查看可能有帮助的实际组件对象上的内容,但不确定是否真的有用。

预期的输出是通过测试,但目前我没有从包装器中获得正确的响应对象。

import { mount } from "enzyme";
import React from "react";
import { ThemeProvider } from "styled-components";
import { getTheme } from "../../../src/components/framework/StyledComponents/themes";

export const ScMountWithTheme = (Component, mode) => {
  return mount(
    <ThemeProvider theme={getTheme(mode)}>{Component.children}</ThemeProvider>,
  );
};

describe.only("ScH1 Styled Component", () => {
  it("renders H1 with Test in the text", () => {
    const wrapper = ScMountWithTheme(<ScH1>Test</ScH1>, "BUY");
    expect(wrapper.find("h1").text()).toContain("Test");
  });
});

标签: javascriptreactjsenzymestyled-components

解决方案


推荐阅读