reactjs - 有条件地在具有 json 样式定义的 React 组件上应用样式
问题描述
我有一个以 json 形式应用样式的组件,我需要有条件地覆盖样式。
查看样式定义:
const classes = {
txt: {
color: 'green',
...
},
txtBlue:{
color: 'blue',
..
},
};
见模板:
<div style={classes.txt + (this.state.goBlue ? classes.txtBlue)}></div>
我上面写的+ (this.state.goBlue ? classes.txtBlue)
不起作用,它只是为了展示我需要理解和工作的内容。
当this.state.goBlue
为真时,我希望两者都classes.txt
适用classes.txtBlue
于div
.
谢谢
解决方案
您没有正确使用三元运算符,您可以执行以下操作:
<div style={ this.state.goBlue ? { ...classes.txt, ...classes.txtBlue } : classes.txt }></div>
如果是真的,这将应用两种样式this.state.goBlue
,否则它只会应用classes.txt
。
推荐阅读
- git - 强制 docker 根据 git repo 的最新提交来重建层
- bash - Bash - 不带小数点的回显百分比,结果从 bc 命令返回
- javascript - 为什么我不能解决 Omdb 承诺?
- react-native - 如何使下划线标签位置居中?
- php - 管理员创建帖子时 CPU 和 RAM 已满
- android - 如何从 recyclerView 适配器中检测回收,以便在回收之前执行操作?
- javascript - 无法使用 Renderer2 更改使用 ViewChild 引用的按钮的属性
- python - 无法运行 SVC 没有错误,但它只是卡住了,有什么办法可以超时吗?
- python-2.7 - 如何在python unittest中检查断言空字符串?
- typescript - typescript/raven.d.ts,行:205 在离子中安装 npm 时找不到名称“未知”