- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现一个基本的 ThemeProvider
与 StyledComponents。我已经毫无问题地基本使用了 styled-components,但是,在尝试实现 <ThemeProvider />
的使用时它不赞成我正在尝试做的事情。该应用程序是用 gatsby 和 Typescript 构建的(对此仍然是新的)
我尝试调试了一下,包括“扩展”基础的建议 styled-components
包括您的主题,例如 as this gist .错误消息对我来说有点难以追查:
Type '{ children: Element[]; theme: DefaultTheme; }' is not assignable to type 'Readonly>'. Types of property 'children' are incompatible. Type 'Element[]' is not assignable to type 'string | number | ReactElement ReactElement Component)> | null) | (new (props: any) => Component)> | undefined'. Type 'Element[]' is not assignable to type 'string'.ts(2322)
// index.tsx
import { ThemeProvider } from "styled-components";
import { theme } from "./theme";
export default () => {
return (
<ThemeProvider theme={theme}>
<Global />
<Comp1 />
<Comp2 />
<Comp3 />
</ThemeProvider>
);
}
即使是 ThemeProvider 的最基本配置也只是包装一个 div 错误:
打字:
//styled.d.ts
import "styled-components";
declare module "styled-components" {
export interface DefaultTheme {
colors: {
purple1: string;
yellow1: string;
blue1: string;
};
}
}
和我的主题:
import { DefaultTheme } from "styled-components";
export const theme: DefaultTheme = {
colors: {
purple1: "#9b91f2",
yellow1: "#f2f0d5",
blue1: "#1c4d8c"
}
};
和 package-json:
"dependencies": {
"babel-plugin-styled-components": "^1.10.6",
"gatsby": "^2.17.4",
"gatsby-plugin-styled-components": "^3.1.11",
"react": "^16.11.0",
"react-dom": "^16.11.0",
"styled-components": "^4.4.0"
},
"devDependencies": {
"@types/styled-components": "^4.1.19",
"gatsby-plugin-tslint": "0.0.2",
"gatsby-plugin-typescript": "^2.1.15",
"tslint": "^5.20.0",
"tslint-loader": "^3.5.4",
"tslint-react": "^4.1.0",
"typescript": "^3.6.4"
}
最佳答案
当我使用 @0.8.0
版本的 chakra-ui/core
库时,同样的事情发生在我身上。
后来升级了release candidate版本修复了不兼容的问题。
关于reactjs - ThemeProvider/Typescript 错误 : Types of property 'children' are incompatible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58785052/
我正在使用样式组件,我想知道是否有必要使用 ThemeProvider。 这是文档中的示例。 // Define our button, but with the use of props.theme
我正在项目中创建导航栏。在我的项目中,我使用 mui/图标 Material :^5.2.5 mui/ Material :^5.2.6 mui/样式:^5.2.3 现在我的文件夹结构是 根.jsx
我想知道哪里应该放在 React 应用程序中。 我想出了两个解决方案。 1、应该在顶级组件中使用“仅一次” 喜欢 index.js或 App.js由“create-react-app”工具创建的文件。
在使用 styled-components 时,如何访问 global.js 中的 ThemeProvider props ? 例如,在 theme.js 中,我有 ${props => props.
所以我正在为这家公司构建一个设计系统,组件系统在设计系统故事书中正确显示。但是当我将它导入消费者应用程序时,出现以下错误 TypeError: Cannot read property 'width'
我在我的 App.js 中创建了一个主题,它覆盖了主要颜色和次要颜色。我有 ThemeProvider 包装 Home 组件。覆盖的值未显示在 Home 组件中。我做错了什么? App.js impo
跟进 Github 上的问题,我有一个组件Comp导出时,用 injectSheet 包裹来自reactjss 。 请参阅 codesandbox 上的设置。 在单元测试中,我想断言该组件包含 ,它
我指的是这个 github project我正在尝试编写 KeyPad.js 的简单测试组件。 我已经看到关于这个问题的问题,一个建议的解决方案是将主题作为 prop 传递给组件。该溶液不适用于 en
我目前正在使用 nx.dev 作为 monorepo。我有多个 react 客户。多亏了 NX,我有了一个中央 Material Ui 配置(在 lib 文件夹内)。 我正在尝试在该 mui 文件夹中
所以我有这两个使用 MUI 的项目。其中一个只包含小的功能组件(一个库),另一个通过 yarn link 导入组件的“库”,并且应该通过“ThemeProvider”应用自定义主题。 我使用故事书作为
我正在尝试为暗模式和亮模式主题设置切换。在消除了项目中的几乎所有内容后,我设法在一个最小的示例中重现了该问题。 当我使用 React.StrictMode JSX 包装器,useful to prev
有没有办法使用 enzyme 浅方法和样式组件的 ThemeProvider 包装来测试样式组件的文本内容? class MyComponent extends React.component {
我经常使用 Material UI,所以这令人费解。我查看了文档,检查了我的代码,但看不到问题所在。我希望嵌套组件中的 H2 标签使用 Arial。但是,它是使用 Times 渲染的。我不确定为什么。
我有一个 styles.tsx 文件,因为我不想将样式放入我的组件中: //styles.tsx import {grey, purple} from '@mui/material/colors';
我有一个 styles.tsx 文件,因为我不想将样式放入我的组件中: //styles.tsx import {grey, purple} from '@mui/material/colors';
我正在尝试实现一个基本的 ThemeProvider与 StyledComponents。我已经毫无问题地基本使用了 styled-components,但是,在尝试实现 的使用时它不赞成我正在尝试
在将 StyledComponents 与 ThemeProvider 一起使用时,我无法获得正确的类型。 我已经用这种方法试过了: https://github.com/styled-compone
应用“ThemeProvider”标签时,我看不到任何变化,即使在如下所示的简单元素中也是如此。 浏览器控制台中没有错误/警告(未使用的导入除外,但即使我将它们全部删除也会失败)。 import Re
我越来越沮丧,因为过去几天我一直试图将我的 React 应用程序从 javascript 迁移到 tsx。到目前为止,我喜欢 tsx 的类型检查,但我不相信 Material-ui 库,尽管它解释了如
这里的问题很简单,真的。 我目前正在开发一个应用程序,我想将部分拆分为组件。 我决定创建一个样板来使用 rollupJS 创建模块,以便使用 NPM 将这些模块导出到我的核心应用程序中。 在我的依赖项
我是一名优秀的程序员,十分优秀!