【发布时间】:2020-03-06 21:05:28
【问题描述】:
我有一个按钮,它会生成随机颜色并使用该颜色值设置颜色状态。
然后,该颜色状态将用于设置 div 的背景颜色。
在 div 内部有一个锁定/解锁按钮,可以将锁定状态设置为 true/false;
现在我遇到问题的部分是在样式元素中使用全能运算符:
我想要它做的是:
如果解锁:改变颜色
如果锁定:不改变颜色并保持不变
import React, { Fragment, useEffect, useState } from "react";
export default function Pallete({ changeColor }) {
const [locked, setLocked] = useState(false)
const [color, setColor] = useState(
"#" + (((1 << 24) * Math.random()) | 0).toString(16)
);
useEffect(() => {
const randomColor = "#" + (((1 << 24) * Math.random()) | 0).toString(16);
setColor(randomColor);
}, [changeColor]);
const lockButton = () =>{
setLocked(!locked)
}
return (
<Fragment>
<div
***style={{ backgroundColor: !locked? color: color }}***
className="w-100 d-flex flex-column align-items-center justify-content-center"
>
<h1>#FF00FF</h1>
<button className="btn btn-dark" onClick={lockButton}>UNLOCK</button>
</div>
</Fragment>
);
}
【问题讨论】:
-
当你尝试在 style 上使用三元条件时是否有错误?
-
您是否特别想要有关三元运算符的信息以及为什么它在这里不起作用,或者只是一个使代码起作用的解决方案?
-
@KevinGilbert 不,如果解锁它会改变颜色,如果锁定它会移除颜色
标签: javascript reactjs