ReactJS中的状态更改后,内联样式未正确呈现
In-line Styles not rendering properly after state change in ReactJS
我正在尝试对React中的一个按钮应用一个简单的状态更改。
'use strict';
class ReactButton extends React.Component {
constructor(props) {
super(props);
this.state = {hovering: false};
}
onClick() {
this.props.handleClick(this.props.text);
}
onHover() {
this.setState({
hovering: !this.state.hovering
});
}
render() {
const color = this.state.hovering ? 'blue' : 'default';
const text = this.state.hovering ? 'Hover Text' : this.props.text;
console.log(color, text);
return (
<button
onClick={this.onClick.bind(this)}
style={{color: color}}
onMouseEnter={this.onHover.bind(this)}
onMouseOut={this.onHover.bind(this)}>
{text}
</button>
);
}
}
ReactDOM.render(
<ReactButton
text={"Original Text"}
handleClick={(e) => console.log('clicked')} />,
document.querySelector('#container')
);
如果你看一下演示,你会注意到当鼠标悬停在按钮上时,文本颜色会变为蓝色,但当鼠标离开按钮时,文本的颜色仍然是蓝色。事件被触发,并且状态确实发生了更改,从而触发了重新渲染,文本更改就是明证。
为什么react不更新内嵌样式?我能做些什么来解决这个问题?
color:
没有default
选项,
将default
更改为inherit
(或您想要的默认颜色名称,如#000000
),
const color = this.state.hovering ? 'blue' : 'inherit';
Example
Example-2
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- React.js:如何使内联样式在状态更改时自动更新进度条
- Javascript:保存和恢复样式状态在IE中不起作用
- Javascript/JQuery样式-#按钮:点击全屏后悬停保持活动状态
- 如何根据子组件的状态更改父组件样式元素
- 悬停样式应该在动态加载多级菜单时保持单击状态
- 样式为 -webkit-外观的单选按钮:复选框:Chrome 中的不确定状态
- 多个按钮,每个按钮都有不同的样式 - 单击后需要保持悬停状态
- 正在为链接添加样式,处于活动状态
- 如何在应用所有样式并删除javascript的情况下捕获运行时html内容/状态
- ReactJS中的状态更改后,内联样式未正确呈现
- 虚拟键盘处于活动状态时的屏幕样式
- CSS样式中断使用参数?—状态304未修改
- 基于父CSS状态的条件子动画(带有React的样式组件)
- 如何设置样式在"*"和JavaScript的伪状态
- 当元素不处于悬停状态时,是否有方法获得元素的HOVER样式?
- 在悬停状态下设置两个跳水动作的样式
- 变化的初始状态的最佳样式
- 设置复杂的反应内联样式(如悬停),在反应组件(如按钮)上处于活动状态
- React内联样式,从状态应用样式