Я хочу получить URL изображения из API и использовать его в качестве фона, для этого мне нужно использовать styled-компоненты.Это код моего приложения:
const API_KEY = `some key`;
class App extends React.Component{
constructor() {
super();
this.state = {
background: ""
}
}
componentDidMount() {
const todayDate = new Date();
this.getImage(todayDate);
}
getImage = async (date) => {
console.log('connecting...');
const URL = `https://api.nasa.gov/planetary/apod?api_key=${API_KEY}`;
const apiCall = await fetch(URL);
const data = await apiCall.json();
this.setState({
background: data.url
});
console.log(data);
}
render(){
return(
<MainContainer>
<Header>Picture</Header>
<Image background={this.state.background}/>
</MainContainer>
)
}
}
код из Image
:
const ImageDiv = styled.img`
height: 100px;
width: 100px;
margin-top: 15px;
background: url(${props => props.background});
`;
class Image extends React.Component{
render(){
console.log("+++"+this.props.background)
const url = this.props.background;
return(
<ImageDiv src={url}></ImageDiv>
)
}
}
export default Image;
Я пытался использовать this.props.background
, но это не сработало.Я всегда получаю свой элемент с background: url();
.Где я неправ?Я хочу отправить в качестве реквизита новый фоновый URL-адрес, полученный от API, и установить его как styled-components background
.Для сравнения, я установил фон как image src для элемента, и он работает, но мне нужен url для работы в стиле.
Мой вывод консоли: ![enter image description here](https://i.stack.imgur.com/7yX9Q.png)