我正在尝试在我的React应用程序中设置内联样式。在这种情况下,对于跨度:
<span className="myClass" style={{float : 'left', paddingRight : '5px'}} > </span>
React告诉我:
未捕获的不变违规:
呈现style
道具需要映射 样式属性为值,而不是字符串。例如, 使用JSX时,style = {{marginRight:spacing +'em'}}。这个DOM节点 由`SentenceView
我不太清楚这意味着什么。
PS:我尝试过不同的版本,所以我paddingRight: 5
以及paddingRight: 5 + 'px'
以及paddingRight : 5px
,但我没有取得任何成功!
答案 0 :(得分:29)
使用“样式 s ”道具而不是样式
<span className="myClass" style={{float : 'left', paddingRight : '5px'}} > </span>
答案 1 :(得分:19)
有一些方法可以为React Components设置样式。
https://facebook.github.io/react/docs/context.html
https://github.com/facebookincubator/create-react-app
使用className="your-class-name"
使用style={css_object}
或style={{color: this.props.color}}
stylesheet.css
import './styles.css';
/*
.classname-color{
color: "red";
background: "#0f0";
}
*/
const BTN = (props) => {
return (
<div>
My name is <button>{props.name}</button>
<hr/>
I'm <span className="classname-color">{props.age}</span> yeas old!
</div>
);
};
const infos = {
name: "xgqfrms",
age: 23
};
ReactDOM.render(<BTN {...infos} />, mountNode);
&#13;
.classname-color{
color: "red";
background: "#0f0";
}
&#13;
// <span style={styles}>
const styles = {
color: "red",
background: "#0f0",
fontSize: "32px"
};
const BTN = (props) => {
return (
<div>
My name is <button>{props.name}</button>
<hr/>
I'm <span style={styles}>{props.age}</span> yeas old!
</div>
);
};
const infos = {
name: "xgqfrms",
age: 23
};
ReactDOM.render(<BTN {...infos} />, mountNode);
// <span style={{color: styles.color}}>
const styles = {
color: "red",
background: "#0f0",
fontSize: "32px"
};
const BTN = (props) => {
return (
<div>
My name is <button>{props.name}</button>
<hr/>
I'm <span style={{color: styles.color}}>{props.age}</span> yeas old!
</div>
);
};
const infos = {
name: "xgqfrms",
age: 23
};
ReactDOM.render(<BTN {...infos} />, mountNode);
&#13;
答案 2 :(得分:1)
这就是你如何使用react来定义和使用内联样式的方法。
/**
* Style definitions.
*/
const STYLE = {
infoColor: {
color: 'green'
},
warningColor: {
color: 'orange'
},
errorColor: {
color: 'red'
}
};
/**
* Component
*/
class Welcome extends React.Component {
/**
* Rendering into the DOM.
*/
render() {
return (
<div>
<h2 style={STYLE.infoColor}>Welcome!</h2>
)
}
}
答案 3 :(得分:1)
不要将{{}}用双引号或字符串括起来
答案 4 :(得分:1)
在HTML中是
<div style="background-color: red;"></div>
您在JSX中编写
<div style={{ backgroundColor: 'red' }}></div>
有条件的内联格式在这两者中是不同的。
答案 5 :(得分:-1)
JSX和html是不同的东西,我们在jsx中添加内联css的语法略有不同,我建议仔细阅读整个文档以更好地理解 https://www.w3schools.com/react/react_css.asp