Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何使用情绪/使用React和Typescript设置样式_Reactjs_Typescript_Emotion - Fatal编程技术网

Reactjs 如何使用情绪/使用React和Typescript设置样式

Reactjs 如何使用情绪/使用React和Typescript设置样式,reactjs,typescript,emotion,Reactjs,Typescript,Emotion,我已将我的根组件包装在@emotion/react的主题Provider中,这使我能够访问道具。主题: constyleddiv=styled.div` 背景色:${(props)=>props.theme.palete.primary.main}; `; 问题:道具。根据TS-调色板,主题是一个空对象,主题类型上不存在该主题(但是我传递给主题提供程序的对象确实包含该属性)。如果我让TS忽略这一点,代码就会工作 文档涵盖了这一点,这似乎是一个简单的解决方案: 但是,我对文档的理解不够透彻,无

我已将我的根组件包装在
@emotion/react
主题Provider
中,这使我能够访问
道具。主题

constyleddiv=styled.div`
背景色:${(props)=>props.theme.palete.primary.main};
`;
问题:
道具。根据TS-
调色板,主题
是一个空对象,主题类型上不存在该主题(但是我传递给主题提供程序的对象确实包含该属性)。如果我让TS忽略这一点,代码就会工作

文档涵盖了这一点,这似乎是一个简单的解决方案:

但是,我对文档的理解不够透彻,无法使
主题
类型的
道具。主题
具有正确的属性


非常感谢为我指明正确方向的任何帮助

样式化组件允许您通过泛型通知他们您的道具:

从“/Theme”导入主题;
类型StyledDivProps={
主题:主题
}
const StyledDiv=styled.div`
背景色:${(props)=>props.theme.palete.primary.main};
`;

添加此文件types.d.ts

import "@emotion/react";
import { IPalette } from "../your-palette";

declare module "@emotion/react" {
  export interface Theme extends IPalette {}
}

我可能做错了什么,但是使用这种方法,
StyledDiv
组件需要我传递
theme
prop