![](/img/trans.png)
[英]Dynamic img src URL with "OR" statement not working properly in NUXT component
[英]Component state variable as img src url
我是React的新手。 我正在嘗試使用組件狀態變量設置圖像的src
屬性。 但是,當我運行代碼時,我看不到組件被渲染。 但是,如果我顯式定義圖像的src
url,則它可以工作。
我的代碼如下。 我也在使用React Carbon組件和React網格布局。
import 'carbon-components/scss/globals/scss/styles.scss';
import GridLayout from 'react-grid-layout';
import React, { Component } from 'react';
import { ClickableTile,Link } from 'carbon-components-react';
class ct extends React.Component {
constructor() {
super()
this.state ={
arr:[]
}
}
componentWillMount(){
let tilesData = []
fetch("https://xyz/api/abc")
.then((results)=>{
return results.json();
}).then((data)=>{
let details = {
imageUrl:data.images["image"]
}
tilesData.push(details)
this.setState({arr : tilesData})
})
render() {
var layout = [
{i: 'a', x: 0, y: 0, w: 2, h: 2}
];
return (
<GridLayout className="layout" layout={layout} rowHeight={30} width={50}>
<ClickableTile key="a">
<div>
// issue here ---------VVVVV
<img src={this.state.arr[0].imageUrl}/>
</div>
</ClickableTile>
</GridLayout>
);
}
}
可能是什么問題?
更新-我解決了這個問題
FIX- this.state ={ arr:[{}] } }
您的fetch
操作是異步的。 您正在更改狀態,而無需等待狀態完成。 您需要在fetch
成功回調中設置狀態,以使setstate生效。 因此,您的狀態為空,因為狀態從未更改。
嘗試這個:
fetch("https://xyz/api/abc")
.then((results)=>{
return results.json();
}).then((data)=>{
let details = {
imageUrl:data.images["image"]
}
tilesData.push(details)
this.setState({arr : tilesData}) //call setState in the fetch callback
})
我修好了它
this.state =
{
arr:[{}]
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.