javascript - 反应 onClick 接收内联样式
问题描述
我正在尝试在 React 中编写一个侧边栏,当我单击该侧边栏的每个元素时,它会被激活。但是,我想用内联样式覆盖默认的 UI 库活动样式,但是我在 onClick 函数中的代码无法编译并给我一个错误。这该怎么做?
class Sidebar extends Component {
state = {
navActive : '0'
}
render () {
return (
<NavPanel dark style={{ backgroundColor: '#2d2e2e', height: '100vh', float:'right'}}>
<NavTitle style={{ fontFamily: 'IranSans', textAlign: 'Center' }}>
لوگو اینجا قرار بگیرد
</NavTitle>
<NavSection>
<NavSectionTitle />
<NavSectionTitle />
<NavLink key='2' style={linkStyles.base} rightEl={<GiIceCube style={linkStyles.Icon} />}
className={this.state.navActive === '2' ? 'active' :' ' }
onClick={() => this.setState({ navActive:'2' }, style={{ borderStyle:'solid',
borderWidth:'0px 10px 0px 0px',
borderColor:'green'}})}>
داشبورد
</NavLink>
</NavSection>
</NavPanel>
)
}
}
export default Radium(Sidebar)
解决方案
的第二个参数setState
是状态更改后执行的回调。
所以你必须根据状态指定你的风格。
<NavLink key='2' rightEl={<GiIceCube style={linkStyles.Icon} />}
className={this.state.navActive === '2' ? 'active' :' ' }
onClick={() => this.setState({ navActive:'2' })}
style={ this.state.navActive !== '2' ? {linkSyles.base} : {
...linkStyles.base,
borderStyle:'solid',
borderWidth:'0px 10px 0px 0px',
borderColor:'green'}
}
>
推荐阅读
- gpu - Core ML 中 fp16 计算与 fp32 计算的区别
- python - 如何将 pickle.loads 从 Python 2 转换为 Python 3?
- reactjs - 对如何正确地将道具传递给后代组件感到困惑
- c++ - 由于将位字段类型转换为整数,Valgrind 未初始化字节错误
- pandas - 如何找到一组向量的所有三个向量子集的三重交叉计数?
- flutter - 之前在 Flutter 中是否可以有带有内容的标签栏?
- kubernetes - 如何减少在 Kubernetes 上检测节点故障的时间?
- apache-kafka - 如何生成输入数据并将其存储到本地文件以及我们如何使用 kafka 读取该输入生成文件的数据
- spring - 在 Spring 的 JmsListener 中实例化 IWebContext
- python - 如何限制可以传递给方法参数的允许值(使用类型提示允许静态代码分析)