我试图通过访问DOM和更改css属性来更改背景图像,如下所示:
///anotherweathermap.js
const changePic = () => {
document.getElementById('bckgAnother').style.backgroundImage = "url(../img/kaunas.jpg)";
}
CSS图像中的相对URL是在样式表的位置(对于内联CSS,它将是网页本身的URL)和图像的URL之间计算的。
两者都没有关系:
由于您使用的是React,您将需要import
图像,然后使用它的导入值来获取URL。
您应该更改您的逻辑,以基于状态设置值,并避免直接的DOM操作。
import Default from '../img/default.jpg';
import Kaunas from '../img/kaunas.jpg';
const AnotherWeatherMap = (props) => {
const [background, setBackground] = useState(Default);
const css = {
backgroundImage: `url(${background})`
};
return (<div style={css}>
<button onClick={ () => setBackground(Kaunas) }>Change background<button>
</div>);
};