javascript - 如何将样式组件及其子组件传递给另一个函数,以便我可以创建酶安装包装器辅助函数
问题描述
我创建了一个函数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");
});
});
解决方案
推荐阅读
- networkx - 如何在 Pygraphviz 无向(且不严格)图(Agraph)或 NetorkX 图中获得连接两个节点的边
- soap - WSDL 模式中的 element、complexType 和 sequence 是什么意思?
- python - 为什么 scipy 和 librosa 在读取 wav 文件时不同?
- google-cloud-platform - Google Cloud - 数据共享选项
- python - 图像噪声处理和边缘方向确定
- node.js - res.sendFile 命令nodejs中的错误
- ios - 什么是 Swift 中的 `_ArrayBuffer` 以及我应该如何以及何时使用它?
- node.js - 通过 HTTP POST 请求进行跨容器通信
- r - 尝试重新创建 cor() 函数时找不到“x”或“y”
- html - 如何从 url 中删除 .html 扩展名