【发布时间】:2021-01-12 21:20:58
【问题描述】:
我正在尝试从 API 获取数据并将响应传递给 img src,它显示状态值为“未定义”。在下面的代码中,我尝试在 useEffect 中设置“bannerImage”状态并抛出“未定义”。我也尝试使用普通函数,将“bannerImage”作为空值。
注意:then 语句中“res”的值是显示 url,但设置为 state 时它不起作用。
function Carousel(props) {
let CarouselSettings = CarouselSetting.homePageBannerCarousel;
const [bannerImage, setBannerImage] = useState();
const serviceEndpoint = config.serviceHost + "/mycompany";
useEffect(() => {
props.carouselData.map((data) => {
//setBannerDetail(data);
return axios
.get(
serviceEndpoint +
config.apiUrl.getAllAppImage +
"/?id=" +
data.pbDtlId +
"&&vendorId=1" +
"&&filecatcode=" +
getFilecatcode.banner
)
.then(res => setBannerImage(res );
});
});
console.log(bannerImage, "===banner");
return (
// <div className="pt-40">
<div className="slider-wrapper relative top-130 py-8 px-10 bg-gray-100">
<Slider {...CarouselSettings}>
{props.carouselData.map((data) => {
return (
<div>
<div>
<h1 className="text-3xl font-semibold">{data.bannerTitle}</h1>
<h4 className="text-xl py-5">
{data.bannerDesc1} {data.bannerDesc2}
</h4>
<h4 className="text-xl pb-5">{data.bannerDesc3}</h4>
<img src={bannerImage}/>
</div>
</div>
);
})}
</Slider>
</div>
);
}
export default Carousel;
【问题讨论】:
-
错误信息到底是什么?
-
console.log的值(bannerImage, "===banner");是“未定义 ===横幅”
-
你说它抛出了一个错误,但是 - 错误信息是什么? (简单地访问或使用
undefined不是错误) -
如果图像从不渲染,添加
catch以检查请求中的错误 -
我在 "then" 控制台语句中验证了 "res" 值,它显示了图像 url。但是当我分配给 state 并检查它没有显示为未定义时。
标签: reactjs react-hooks use-effect