如何改变react组件的样式和类
ReactJS - How to change style and class of react component?
我希望能够在渲染之前改变组件的style
和className
,在它的渲染函数之外。我要做的比这里展示的要多,但这是基本思想,能够以某种方式将style和className设置为属性:
只有当"style"变量被移动到渲染函数内部,并像正常一样添加到div(例如<div style={style}>
)时,以下操作才有效。我怎样才能使以下工作?
JS提琴不工作
编辑:工作的JS提琴在这里!
/** @jsx React.DOM */
var Main = React.createClass({
render: function() {
var result = this.doRender();
var style = {
border:'1px solid red'
};
result.style = style;
return result;
},
doRender: function() {
return (
<div>Test</div>
);
}
});
React.renderComponent(<Main/>, document.body);
React元素被设计成不可变的;通常情况下,如果你预先构建适当的道具,而不是稍后对其进行修改,你的应用程序将最容易理解,React也会这样认为。也就是说,你可以使用React。cloneElement来获得你想要的效果:
render: function() {
return React.cloneElement(this.doRender(), {
style: {border: '1px solid red'}
});
},
(注意,如果您的doRender()
函数返回一个自定义组件,那么更改props将更改该组件的props,而不是生成的底层DOM组件。)没有办法将其呈现为DOM组件并更改该组件的道具,除非在componentDidMount
中手动更改DOM。
你可以试试这个游戏
componentDidMount() {
document.querySelector('.yourClassName').style = 'your: style'
}
相关文章:
- 使用jquery在react组件内部设置样式可以吗
- webpack样式加载器-在react组件上导入不同的样式,而无需重写
- 如何在react组件上应用css样式
- 如何根据子组件的状态更改父组件样式元素
- 如何通过css模块将样式应用于react组件
- 如何在HTML中设置React组件的样式
- 反应 - 组件样式不从道具更新
- 自动建议反应.js组件不会在渲染时更新输入样式
- 应用样式“;游标:指针”;所有具有onClick功能的React组件
- web组件如何尽快获得自己的样式(宽度等)
- 在React组件中呈现样式元素
- 注入样式标签+ angular组件计时
- 如何改变react组件的样式和类
- 基于父CSS状态的条件子动画(带有React的样式组件)
- ReactJS -内联样式不会在重新呈现组件时更新
- 在组件内部定义样式,但不要内联
- 样式化tomahawk上传文件组件
- Angular组件样式指南
- ExtJs 4:带有Ext.ux.upload插件的组件在以MVC样式重写后停止工作
- Angular2组件样式/css没有被浏览器应用在ngafterviewit中