尽管 React 中存在 element,为什么 document.getElementById() 在 React 中返回 null?
我在 React 类组件中有这段代码,当我尝试调用 document.getElementById(photo._id)
时,它一直返回 null,尽管当我尝试 console.log(photo._id)
时code> 在这两行中,渲染中的行首先打印在控制台中,因此 id 应该在那里?
componentDidMount() {
this.props.location.state.product.photos.map((photo) => {
return axios
.get(`${SERVER_HOST}/products/photo/${photo.filename}`)
.then((res) => {
if (res.data) {
if (res.data.errorMessage) {
console.log(res.data.errorMessage);
} else {
console.log(photo._id);
console.log(document.getElementById(photo._id));
}
} else {
console.log("Record not found");
}
});
});
}
render() {
return (
{this.props.location.state.product.photos.map((photo) => {
{ console.log(photo._id); }
<img key={photo._id} id={photo._id} />;
})}
)
}
I have this code inside a React class component and when I try calling document.getElementById(photo._id)
it keeps returning null although when I tried console.log(photo._id)
in both lines, the line in the render is printed first in the console so the id is supposed to be there?
componentDidMount() {
this.props.location.state.product.photos.map((photo) => {
return axios
.get(`${SERVER_HOST}/products/photo/${photo.filename}`)
.then((res) => {
if (res.data) {
if (res.data.errorMessage) {
console.log(res.data.errorMessage);
} else {
console.log(photo._id);
console.log(document.getElementById(photo._id));
}
} else {
console.log("Record not found");
}
});
});
}
render() {
return (
{this.props.location.state.product.photos.map((photo) => {
{ console.log(photo._id); }
<img key={photo._id} id={photo._id} />;
})}
)
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您没有在地图函数中返回图像元素。因此,它没有安装在 dom 树中,您无法使用 document.getElementById() 访问它
You are not returning the image element in map function. Hence, it's not mounted in the dom tree and you can't access it using document.getElementById()
将渲染函数体替换为以下代码。
Replace your render function body with the code below.