道具、TailwindCSS 和 Twin.Macro
Props, TailwindCSS & Twin.Macro
我正在尝试让以下组件与 Twin.Macro 一起正常工作:
import "twin.macro";
const Pattern = ({ classes }) => {
return (
<div css={[classes.wrapper]}>
<img
src="..."
css={[classes.img]}
/>
</div>
);
};
换句话说,我想通过 classes
道具接收道具并将值传递给 Twin.Macro。但是,它无法正常工作。例如,这是该组件的一个实现:
<Pattern
classes={{
wrapper: "absolute -left-2 z-10 lg:left-0 top-0 h-full bg-contain bg-line-left-md lg:bg-line-left bg-no-repeat xl:bg-line-left-md hidden sm:block",
img: "h-full",
}}
/>
这是输出的 css:
.css-w36jn9-Pattern {
absolute -left-2 z-10 lg: left-0 top-0 h-full bg-contain bg-line-left-md lg:bg-line-left bg-no-repeat xl:bg-line-left-md hidden sm:block;
}
如您所见,它所做的只是传递顺风值 css 类。它不会处理正确的 属性 值对中的那些 类(例如位置:绝对;左:-2px 等)。
我尝试了不同的方法来让它工作,但都没有成功。知道我做错了什么以及如何解决吗?
谢谢。
根据Twin.Macro when passing css
property, you need to pass your classes to tw
function using tagged template literals。假设您要传递一个变量,也可以使用字符串插值。
最后,您的代码应如下所示:
import tw from "twin.macro";
const Pattern = ({ classes }) => {
return (
<div css={[tw`${classes.wrapper}`]}>
<img
src="..."
css={[tw`${classes.img}`]}
/>
</div>
);
};
我正在尝试让以下组件与 Twin.Macro 一起正常工作:
import "twin.macro";
const Pattern = ({ classes }) => {
return (
<div css={[classes.wrapper]}>
<img
src="..."
css={[classes.img]}
/>
</div>
);
};
换句话说,我想通过 classes
道具接收道具并将值传递给 Twin.Macro。但是,它无法正常工作。例如,这是该组件的一个实现:
<Pattern
classes={{
wrapper: "absolute -left-2 z-10 lg:left-0 top-0 h-full bg-contain bg-line-left-md lg:bg-line-left bg-no-repeat xl:bg-line-left-md hidden sm:block",
img: "h-full",
}}
/>
这是输出的 css:
.css-w36jn9-Pattern {
absolute -left-2 z-10 lg: left-0 top-0 h-full bg-contain bg-line-left-md lg:bg-line-left bg-no-repeat xl:bg-line-left-md hidden sm:block;
}
如您所见,它所做的只是传递顺风值 css 类。它不会处理正确的 属性 值对中的那些 类(例如位置:绝对;左:-2px 等)。
我尝试了不同的方法来让它工作,但都没有成功。知道我做错了什么以及如何解决吗?
谢谢。
根据Twin.Macro when passing css
property, you need to pass your classes to tw
function using tagged template literals。假设您要传递一个变量,也可以使用字符串插值。
最后,您的代码应如下所示:
import tw from "twin.macro";
const Pattern = ({ classes }) => {
return (
<div css={[tw`${classes.wrapper}`]}>
<img
src="..."
css={[tw`${classes.img}`]}
/>
</div>
);
};