我的数据库里有文件。每个文件都有“IS_DELETE”行,这表明是否删除了该文件。
如果文件的'IS_DELETE‘行是0,这意味着文章的作者没有删除。
如果一个文件的'IS_DELETE‘行是1,这意味着它被写入者删除了。
但是,我使用GET请求来呈现项目。
我做的代码是为了让你看得清楚。我可能漏油了!
test = () => {
const [files, setFiles] = useState([]);
const getDetails = async () => {
await get(`URL`)
.then((res) => {
setFiles(res)
})
}
useEffect=(() => {
getDetails()
},[])
return (
<>
files.map((file) => (
<div>
{file}
</div>
))
</>
)}使用此代码,我呈现每个文件,尽管有些文件的IS_DELETE行中有“1”。
,我想知道我是否能够有条件地从DB中获取这些项,还是使用特定的函数获取每个文件并过滤我的数组。
我收到这种格式的文件。
[
{PK:1, NAME:'Hello.jpg', IS_DELETE: 0}
{PK:2, NAME:'Nice.jpg', IS_DELETE: 1}
{PK:3, NAME:'To.jpg', IS_DELETE: 0}
]谢谢。我不擅长英语。所以请理解。
等待你的智慧!
发布于 2022-01-01 10:58:27
不,您不能修改从服务器获得的响应,除非它有特定的端点可以这样做。这就像发送一封信和发出回复一样--除非你的收件人允许你发送一封带有特定请求的信,否则你不能让回复变得不同。‘只给我没有删除的项目’,但如果你不负责服务器,你唯一能做的就是过滤你得到的回应项目。
const getDetails = async () => {
await get(`URL`)
.then((res) => {
const filtered = res.filter(file => file.IS_DELETE === 0);
setFiles(filtered);
})
}发布于 2022-01-01 10:59:00
您可以将参数is_deleted与主链接在url连接中传递。
{url}?is_deleted=0
发布于 2022-01-01 11:06:41
根据您正在使用的数据库,可以这样做。例如,在SQL数据库中,可以执行SELECT * FROM files WHERE IS_DELETE != 0。
但您也可以在前面这样做,如下所示:
const getDetails = async () => {
const res = await get(`URL`);
setDetails(res.filter(file => !file.IS_DELETE));
}https://stackoverflow.com/questions/70548326
复制相似问题