convert to styled component from css (ternary operator)(从CSS转换为带样式的组件(三元运算符))
本文介绍了从CSS转换为带样式的组件(三元运算符)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将我的项目从CSS转换为样式组件(https://styled-components.com/),目前我已经转换了我所有的其他组件,除了一个我已经粘贴的组件,检查了来自Stackoverflow的其他示例,但它不是同一种。 我有条件类名称我的问题是如何将infobox组件转换为使用样式组件,我的问题是这个‘类名称’转换为样式组件有点复杂,有什么想法吗?
英语不是我的母语,所以可能会被误解
我的代码: 数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
import React from 'react'
import "./InfoBox.css"
import { Card } from "@material-ui/core"
function InfoBox({ isRed, active, activetored, ...props }) {
return (
<Card onClick={props.onClick}
className={`infoBox ${active && "infoBox--selected"}
${activetored && "infoBox--selectedtored"}
${isRed && "infoBox--red"} `} >
</Card>
)
}
export default InfoBox
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
<div className="app__stats">
<InfoBox
isRed
active={typeofCase === "cases"}
onClick={(e) => setTypeofCase('cases')}
/>
<InfoBox
isGreen
active={typeofCase === "recovered"}
onClick={(e) => setTypeofCase('recovered')}
/>
<InfoBox
isRed
activetored={typeofCase === "deaths"}
onClick={(e) => setTypeofCase('deaths')}
/>
</div>
css是这样的(你可以放任何东西):
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假"> . infoBox--selected {
border-top: 10px solid greenyellow;
}
. infoBox--selectedtored {
border-top: 10px solid red;
}
. infoBox--red {
border-color: darkblue;
}
推荐答案
若要开始,请参阅here如何在样式化组件中使用道具。 有了这些道具,您可以在样式组件中做任何您想做的事情,并且可以在您的代码中实现这一点,如下所示:
import React from 'react'
import "./InfoBox.css"
import { Card } from "@material-ui/core"
import styled from 'styled-components'
const StyledCard = styled(Card)`
border-top: ${({$active, $activetored}) => $active ? '10px solid greenyellow' : $activetored && '10px solid red'};
border-color: ${({$isRed}) => $isRed && 'darkblue'};
`
function InfoBox({ isRed, active, activetored, ...props }) {
return (
<StyledCard $isRed={isRed} $active={active} $activetored={activetored} onClick={props.onClick}>
</StyledCard>
)
}
export default InfoBox
请注意,如果活动和激活都为真,则可能会根据三元条件的顺序相互覆盖。如果两个道具都设置为True,则您的示例不会显示这种情况,因此应该可以。
这篇关于从CSS转换为带样式的组件(三元运算符)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:从CSS转换为带样式的组件(三元运算符)
基础教程推荐
猜你喜欢
- 即使每次插入第一个输入的值不同,第二个输入仍显示相同的输入值 2022-01-01
- CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符 2022-01-01
- 当木偶师打开Chrome时,不能使用Chrome扩展 2022-01-01
- 最佳动态 JavaScript/JQuery 网格 2022-01-01
- 带角度的选项卡:仅使用 $http 在单击时加载选项卡 2022-01-01
- 逻辑运算符 ||在 javascript 中,0 代表 Boolean false? 2022-01-01
- 使用 jQuery 在悬停时交换 DIV 类 2022-01-01
- HTML5 画布调整为父级 2022-01-01
- 从快速中间件中排除路由 2022-01-01
- 在 Javascript 中使用 Fetch API 上传文件并显示进度 2022-01-01
