我最近将我的react应用程序从material-ui v3迁移到v4,并用'@ material-ui / styles'替换了'@ material-ui / core / styles',用于测试,我们使用了笑话和酶。测试失败迁移后。如何解决此问题?错误如下:
警告:Material-UI:提供的styles
自变量无效。
您正在提供的功能在上下文中没有主题。
父元素之一需要使用ThemeProvider。
错误:未被捕获[TypeError:theme.spacing不是函数]
完整的DOM呈现›遇到声明异常
TypeError:theme.spacing不是函数
17 | },
18 | selectEmpty: {
> 19 | marginTop: theme.spacing(2),
| ^
20 | },
答案 0 :(得分:1)
材料UI的旧版本就像是从'@ material-ui / styles'导入{makeStyles};
但是他们已经更新了新版本,例如从'@ material-ui / core / styles'导入{makeStyles}
答案 1 :(得分:0)
您必须使用ThemeProvider包装所有测试。这样可以解决问题。 示例:
wrapper = mount(
<ThemeProvider>
<Dropdown handleSelect={handleSelectSpy} options={options} />
</ThemeProvider>,
);