我正在尝试根据当前状态更改按钮的样式。
以下是我当前的尝试:
<Button
id="1W"
size="sm"
style={[this.state.timeSpan === '1W' ? btnActive : btnInactive]}
onClick={this.handleSpan}
>
最初我遇到此错误->
“ TypeError:CSS2Properties没有针对的索引属性设置器 '0'“。
我不知道该怎么解决。
现在该页面根本无法加载。
我的语法有问题吗?还是有一种更好的整体方法来实现我的目标?
答案 0 :(得分:0)
我想说,更改元素的类是首选方法:
<button
className={this.state.timeSpan == '1W' ? 'btnActive' : 'btnInactive'}
...>
这样,表示就尽可能与逻辑分离。
如果样式是在运行时生成的,则可以设置style
:
...
style={this.state.timeSpan == '1W' ? btnActive : btnInactive}
(假设btnActive
是诸如{color: 'rgb(1,2,3)'}
之类的对象)
答案 1 :(得分:-1)
这不是您编写CSS的方式,也不是正确的语法:
style={[this.state.timeSpan === '1W' ? btnActive : btnInactive]}
如果它是带有道具的物体,那么您可能会做的是
style={(this.state.timeSpan === '1W' ? {...btnActive} : {...btnInactive})}
或者,如果是类名:
className={(this.state.timeSpan === '1W' ? btnActive : btnInactive)}