当你的类名中有破折号时,你如何使用 withStyles(同构样式加载器)?
How do you use withStyles (isomorphic style loader) when your className has a dash in it?
假设这是您的 SCSS:
.someclass {
background: red;
height: 1500px;
width: 10000px;
}
这就是您的使用方式:
import React, { Component, PropTypes } from 'react'
import ReactDropZone from 'react-dropzone'
import ReactDOM from 'react-dom'
import withStyles from 'isomorphic-style-loader/lib/withStyles'
import s from './ImageTool.scss'
class ImageTool extends Component {
render() {
return (
<div className={s.someclass}></div>
)
}
}
export default withStyles(ImageTool, s)
所以这很有效。
现在,如果您需要为 class some-class
命名,会发生什么情况?显然 className={s.some-class}
不起作用,className={s.someClass}
也不起作用(没有任何反应)。
JSX 中大括号之间的代码只是 JavaScript 而 s
只是一个对象。即,您可以像通常在 JS 中一样访问 s
的属性,即使它们包含破折号、空格或其他有趣的字符。
具体可以这样写:
<div className={s['some-class']}></div>
假设这是您的 SCSS:
.someclass {
background: red;
height: 1500px;
width: 10000px;
}
这就是您的使用方式:
import React, { Component, PropTypes } from 'react'
import ReactDropZone from 'react-dropzone'
import ReactDOM from 'react-dom'
import withStyles from 'isomorphic-style-loader/lib/withStyles'
import s from './ImageTool.scss'
class ImageTool extends Component {
render() {
return (
<div className={s.someclass}></div>
)
}
}
export default withStyles(ImageTool, s)
所以这很有效。
现在,如果您需要为 class some-class
命名,会发生什么情况?显然 className={s.some-class}
不起作用,className={s.someClass}
也不起作用(没有任何反应)。
JSX 中大括号之间的代码只是 JavaScript 而 s
只是一个对象。即,您可以像通常在 JS 中一样访问 s
的属性,即使它们包含破折号、空格或其他有趣的字符。
具体可以这样写:
<div className={s['some-class']}></div>