如何重用带有样式组件的 ThemeProvider?

保罗·拉兹万·伯格

我在使用yarn workspaces构建的 monorepo 中使用样式组件文件夹结构是这样的:

- 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-apackage-b(两者都是 create-react-app 项目)并作为顶级组件添加。

但是当我尝试在这两个包中的任何一个中重用主题时出现此错误:

index.js:1375 组件 styled.div (.sc-fzXfNf) 在其样式中使用“props.theme”,但没有通过 prop 或 ThemeProvider 提供主题。

我记录了props并且theme对象是空的 ({})。这是为什么?甚至有可能在这里做我想做的事吗?

保罗·拉兹万·伯格

看来我只是错误地在两个包中使用了不同版本的 React。我同步了我的依赖项,进行了清理node_modules,现在我最初编写的代码可以正常工作:

const defaultTheme = { ... };

export default function ThemeProvider({ children }) {
  return <StyledThemeProvider theme={defaultTheme}>{children}</StyledThemeProvider>;
}

注意:这是在一个纱线工作区 monorepo 中,不确定它如何与其他工具一起使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何重新应用被 ThemeProvider 删除的样式类?

Emotions.js或样式化组件ThemeProvider提供了什么?

在全局样式化组件中使用ThemeProvider道具

在样式化组件中进行主题设置是否需要ThemeProvider?

样式组件中“ ThemeProvider”的最佳实践是什么?

带有 ThemeProvider 的 Material UI Palette 自定义颜色

MUI ThemeProvider未在已编译的组件中注入主题

Material-UI ThemeProvider未将主题传递给组件

带有样式组件的条件样式

带有样式组件的样式链接

React-router-dom更改URL,但不更新样式化组件的ThemeProvider的内容

如何在沒有 ThemeProvider 的情況下使用 MUI v5 makeStyles?

具有样式化组件的可重用参数CSS

Material-UI样式ThemeProvider错误:TypeError:无法读取未定义的属性“ primary”

如何使用 SwiftUI 实现带有样式、文本和图标的可重用按钮?

Material ui 'sx' 属性没有采用我的 themeProvider 的新值

如何基于带有样式组件的属性添加多种样式?

如何在 ThemeProvider 的孩子中访问 Material-UI 自定义主题

React Native - 带有样式组件的样式按钮

如何在带有样式化组件的Reactjs中导入本地字体?

如何通过带有样式组件的动态名称设置背景图像?

如何在Typescript的React Modal中添加带有样式组件的包装器?

如何在 MuiThemeProvider 标签内包装带有样式的组件?

如何在带有样式组件的后伪元素中旋转图像

如何将按钮集中在带有样式组件的单击上?

如何使用带有样式组件的道具更改图像 src 并做出反应

使用带有样式组件的env()CSS变量

带有样式组件的onClick的打字稿问题

带有样式组件的react-native-navigation主题