如何将prop值传递到Stitchesjs组件并在组件定义中使用它?
这是styled-components
中常见的模式,但是在Stitches中,我似乎找不到方法,以这个组件为例:
const Spacer = styled('div', {
'16': {marginBottom: '$16'},
variants: {
size: {
'20': {marginBottom: '$20'}
}
}
});
我不想创建10个变量,而是想通过一个 prop 传递数量:
<Spacer size={'30px'} />
或者更好的:
<Spacer size={'$sizes$3'} />
我如何使用这个值,使marginBottom
匹配我给予它的任何值?
3条答案
按热度按时间hk8txs481#
看一下https://stitches.dev/docs/utils。
然后你可以这样使用:
pw136qt22#
我一直在寻找这个答案,尝试了几种不同的方法。
对我来说,最简单的方法是本地范围的主题令牌。
因此,已设置样式的构件将如下所示:
然后将本地作用域的令牌传递到
css
prop:idv4meu83#
在Stitches Github上曾经讨论过将动态值作为属性传递的可能性。但是Stitches的目标是尽可能地拥有最小的
runTime
,所以它没有被实现!Github PR stitches
当您需要在可以是任何值的针脚中使用JSX变量时,一种解决方案是使用CSS变量;
所有的stitch元素都获得
css
属性,您可以通过它传递新属性!样式组件:
组件:
到目前为止,最好的解决方案,已为我工作的这个非常问题。简化了代码,更好地维护以后!