我在使用yarn workspaces构建的 monorepo 中使用 styled-components 。文件夹结构是这样的:
- packages
- package-a
- package-b
- theme
在theme
中,我像这样导出默认值ThemeProvider
:
const defaultTheme = { ... };
export default function ThemeProvider({ children }) {
return <StyledThemeProvider theme={defaultTheme}>{children}</StyledThemeProvider>;
}
此代码使用@babel/preset-react进行转译。输出导入package-a
和package-b
(都是 create-react-app 项目)并添加为顶级组件。
但是在尝试在这两个包中的任何一个中重用主题时出现此错误:
index.js:1375 组件 styled.div (.sc-fzXfNf) 在其样式中使用“props.theme”,但没有通过 prop 或 ThemeProvider 提供主题。
我记录了props
并且theme
对象为空({})。这是为什么?甚至可以在这里做我想做的事吗?