Styled-components 将 props 值获取到 javascript 变量

Styled-components get props value to javascript variable

你好 Whosebugers

我想知道是否可以将 styled-component 道具的值放入 javascript 变量中。

例子

<CardBox Columns="3">

我想做的是:

var Columns = props => props.Columns;
var ColumnCount;

for (var i = 0; i < Columns; i++) {
    ColumnCount = ColumnCount + "Auto ";
}

const CardBox = styled.div`
    display: grid;
    grid-template-columns: ${ColumnCount};
`;

但变量 Columns 似乎设置为:

function (props) {
    return props.Columns;
}

而不是我希望的“3”:)

如果可能的话,希望有人能指导我正确的方向。

所以你想要完成的是完全正常的,很多人都在尝试使用。

你主要尝试传递这样的属性:

const CardBox = styled.div`
 width: 100px;
 margin: 10px;
 background: blue;
 height: ${props => props.columns}px; <-- as an example if we need pixels

 //we use props named columns as you will see below
`;


<CardBox columns={i} /> <-- how you pass to a styled component

在您的情况下,您可能需要循环所有组件并像您一样传递参数并渲染它,一切都应该没问题。

我做了一个简单的codesanbox来试试:https://codesandbox.io/s/21v3ql84kj

如果您想要 属性 的文档部分,请传递:https://www.styled-components.com/docs/basics#passed-props

祝你好运!