我想使用 useRef
钩子更改dom元素的样式:
const Box = props => {
const box = useRef(0);
const onClick = () => {
box.current.backgroundColor = "blue";
};
return (
<div>
<div
ref={box}
style={{ width: "300px", height: "300px", backgroundColor: "red" }}
/>
<button onClick={onClick}>Change color of box</button>
</div>
);
};
但是,如果我单击按钮,则box
的backgroundColor
不会更改。
我还创建了一个简单的代码段,这说明了我的问题。
您正在尝试直接在DOM元素上修改不存在的backgroundColor
属性:
box.current.backgroundColor = "blue";
将(如果有效(将您的DOM元素修改为:
<div backgroundColor="blue" ... />
为了使它起作用,您需要通过style
属性修改backgroundColor
:
box.current.style.backgroundColor = "blue";
您的摘要的工作版本