Я на самом деле работаю над приложением React и сейчас пытаюсь отобразить случайное фоновое изображение. Моя идея состояла в том, чтобы импортировать 4 изображения, поместить их в массив и выбрать случайным образом один элемент массива:
import skyPicture1 from '../assets/pictures/sky.jpg'
import skyPicture2 from '../assets/pictures/sky2.jpg'
import skyPicture3 from '../assets/pictures/sky3.jpg'
import skyPicture4 from '../assets/pictures/sky4.png'
class HomeForUnlogged extends Component {
constructor(props) {
super(props)
this.state = {
bgStyle : {
height: "100%",
backgroundPosition: "center",
backgroundRepeat: "no-repeat",
backgroundSize: "cover",
}
}
}
componentWillMount() {
const pictureArray = [{skyPicture1}, {skyPicture2}, {skyPicture3}, {skyPicture4}];
const randomIndex = Math.floor(Math.random() * pictureArray.length);
const selectedPicture = pictureArray[randomIndex];
this.setState({
bgStyle: {
backgroundImage: `url(${selectedPicture})`,
height: "100%",
backgroundPosition: "center",
backgroundRepeat: "no-repeat",
backgroundSize: "cover",
}
})
}
render() {
return (
< div style={this.state.bgStyle} className="bg">
<div className="row" >
<div className="col-sm-4" style={{ marginTop: "30px", padding: "30px" }} > <TextHome /></div>
<div className="col-sm-4" style={{ marginTop: "90px", padding: "30px" }}> <Login history={this.props.history} /></div>
<div className="col-sm-4"> </div>
</div>
</div>
);
}
}
export default HomeForUnlogged;
Но изображение вообще не отображается. У кого-нибудь есть идеи, что я не так сделал? Понятия не имею.