json - 如何在反应中使用api从数据中删除图片
问题描述
所以我正在尝试学习 api 并做这个很酷的项目。所以我所拥有的是我从这个 api 网站获取照片数据:https ://jsonplaceholder.typicode.com/
所以基本上我有一个按钮,它将根据帖子部分中的albumId从api添加缩略图数据,当我按下图像时,它会将图像的url发送到将其加载到顶部的函数。
所以我想要的是能够删除顶部的图片,使其旁边有这样的红色 x,当我按下它时,它将从上部和帖子部分中删除。
到目前为止我的代码:
const DataFetching = () =>{
const [photo,setPhoto] = useState([])
const[albumId,setAlbumId] = useState(1)
const[albumIdFromButtonClick,setAlbumAIdFromButtonClick] = useState(1)
useEffect(()=>{
axios.get(`https://jsonplaceholder.typicode.com/photos?albumId=${albumIdFromButtonClick}`)
.then(res =>{
console.log(res)
setPhoto(res.data)
})
.catch(err =>{
console.log(err)
})
},[albumIdFromButtonClick])
const handleClick = () => {
setAlbumAIdFromButtonClick(albumId)
}
const [Url,setUrl] = useState()
const showPicture = (url) => {
setUrl(url)
}
return(
<div>
<div><img src={Url}></img></div>
<div>Posts</div>
<p>enter album Id to see the magic</p><input type="text" value={albumId} onChange={e => setAlbumId(e.target.value)}></input>
<button type="button" onClick={handleClick}>Fetch Album</button>
<div className="container">
<div>{photo.map(p =>
<div key={p.id}>
<img src={p.thumbnailUrl} thumbnailUrl={p.thumbnailUrl} onClick={() => showPicture(p.url)}></img>
<div>{p.title}</div>
</div>
)}</div>
</div>
{/* {
photos.map(photo => <div key={photo.id}>{photo.title}</div>)
} */}
</div>
)
}
export default DataFetching;
解决方案
好的,所以我希望您有一个按钮来删除帖子图像。
例如,当您单击按钮时,您正在调用 deleteImageFromAlbum() 方法。所以代码将是:
const deleteImageFromAlbum = photoID => {
setUrl('')
setPhoto(photos.filter(photo => photo.id !== photoID));
}
该filter
方法更新数组并拍摄 id 不等于目标照片的所有照片。
推荐阅读
- php - 如何检查按钮的值并根据使用 phpmailer 检查的输入在正文邮件中创建条件?
- node.js - Nodejs each 和 foreach 循环
- java - 我想在我的应用程序中使用 NavigationView,但我找不到为 androidX 实现的正确依赖项
- python - Pandas 使用动态列名聚合
- encryption - MD5 降低 AES 的可靠性?
- android - 我想访问所有应用程序的使用时间。我如何在颤振中编程?
- nginx - 动态更改 nginx 根目录
- rest - 具有不同响应结构的 REST API 过滤 GET
- amadeus - 导致错误 701:Amadeus 自助服务 API 中的身份验证凭据错误的原因是什么?
- laravel - 错误,在 null 上调用成员函数 send()