Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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
Javascript 如何在React样式化组件的模板文本中定义的单个回调中使用多个道具_Javascript_Css_Reactjs_Styled Components - Fatal编程技术网

Javascript 如何在React样式化组件的模板文本中定义的单个回调中使用多个道具

Javascript 如何在React样式化组件的模板文本中定义的单个回调中使用多个道具,javascript,css,reactjs,styled-components,Javascript,Css,Reactjs,Styled Components,几天前,我已经开始在React项目中使用样式化组件,但我无法使用多个道具来定义组件中的样式。 问题的要点如下: const sizes = { lg: css` width: 200px; height: 120px; font-size: 22px; `, md: css` width: 140px; height: 80px; font-size: 18px; `

几天前,我已经开始在React项目中使用样式化组件,但我无法使用多个道具来定义组件中的样式。 问题的要点如下:


const sizes = {
   lg: css`
        width: 200px;
        height: 120px;
        font-size: 22px;
    `,
    md: css`
        width: 140px;
        height: 80px;
        font-size: 18px;
    `
}
const getColor = (color)=>css`color: ${color}`

const MyComponent = styled.div`
 max-width: 240px;
 font-size: 12px;
 color: '#ffffff';
 ${props=>getColor(props.color)}
 ${props=>sizes[props.size]}
`
....

<MyComponent color="blue" size="lg" ></MyComponent>

常数大小={
lg:css`
宽度:200px;
高度:120px;
字体大小:22px;
`,
md:css`
宽度:140px;
高度:80px;
字号:18px;
`
}
const getColor=(color)=>css`color:${color}`
常量MyComponent=styled.div`
最大宽度:240px;
字体大小:12px;
颜色:“#ffffff”;
${props=>getColor(props.color)}
${props=>size[props.size]}
`
....
问题是,每次我需要为我的组件添加额外的配置(如颜色和大小),我都必须在模板文本中添加另一个回调


是否有一种方法可以用一行代码应用所有内容,而不添加单独的回调?

styled也接受传递道具的函数:

const MyComponent = styled.div(({color, size}) => `
 max-width: 240px;
 font-size: 12px;
 color: ${color ? color : '#ffffff'};
 `${sizes[size]}`
`
我正在使用解构,但如果您愿意,可以将其保留为
props