将样式对象传递给 Emotion 的 css 道具时使用 css "position" 出现 TS 错误
TS error using css "position" when passing style object to Emotion's css prop
我有一个 React 组件,大致结构如下:
// This does not work.
const style = {
position: 'absolute'
// ...other css props
}
const Component = () => {
return <div css={style}/>
}
该结构似乎适用于所有其他 css 道具,但如果我在对象中包含 position
道具,我会收到以下 TypeScript 错误:
Type '{ //... }' is not assignable to type 'Interpolation<Theme>'
Type '{ //... }'is not assignable to type 'undefined'. TS2322
将 position 道具直接内联传递给 css 道具效果很好:
// This works.
const style = {
// ...other css props
}
const Component = () => {
return <div css={{ position: 'absolute', ...style }}/>
}
知道为什么我不能在样式对象中包含位置道具吗?
如果您显示在样式对象中传递的其他属性,可能会有所帮助。 Post div
组件的代码和日志错误的输出(如果可能的话)。
另一个问题,但我认为这不是主要问题:我认为如果您在驼峰式语法中使用 div
组件可能是一个很好的做法,例如 DivComponent
,因为例子。为了避免与 div
html 标签混淆。
这是因为您直接将计划对象值用作css
情感道具值。
只有将 css
样式对象直接输入到 css
prop 中才会产生情感。
请检查https://emotion.sh/docs/object-styles。
要使用css
样式对象,您需要使用css
.
将其定义为情感的样式对象
const style= css({
position: 'absolute',
...otherStyles
})
我有一个 React 组件,大致结构如下:
// This does not work.
const style = {
position: 'absolute'
// ...other css props
}
const Component = () => {
return <div css={style}/>
}
该结构似乎适用于所有其他 css 道具,但如果我在对象中包含 position
道具,我会收到以下 TypeScript 错误:
Type '{ //... }' is not assignable to type 'Interpolation<Theme>'
Type '{ //... }'is not assignable to type 'undefined'. TS2322
将 position 道具直接内联传递给 css 道具效果很好:
// This works.
const style = {
// ...other css props
}
const Component = () => {
return <div css={{ position: 'absolute', ...style }}/>
}
知道为什么我不能在样式对象中包含位置道具吗?
如果您显示在样式对象中传递的其他属性,可能会有所帮助。 Post div
组件的代码和日志错误的输出(如果可能的话)。
另一个问题,但我认为这不是主要问题:我认为如果您在驼峰式语法中使用 div
组件可能是一个很好的做法,例如 DivComponent
,因为例子。为了避免与 div
html 标签混淆。
这是因为您直接将计划对象值用作css
情感道具值。
只有将 css
样式对象直接输入到 css
prop 中才会产生情感。
请检查https://emotion.sh/docs/object-styles。
要使用css
样式对象,您需要使用css
.
const style= css({
position: 'absolute',
...otherStyles
})