首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用特定的React值(Next.js)从DB中有条件地获取项?

如何使用特定的React值(Next.js)从DB中有条件地获取项?
EN

Stack Overflow用户
提问于 2022-01-01 10:41:23
回答 4查看 309关注 0票数 1

我的数据库里有文件。每个文件都有“IS_DELETE”行,这表明是否删除了该文件。

如果文件的'IS_DELETE‘行是0,这意味着文章的作者没有删除

如果一个文件的'IS_DELETE‘行是1,这意味着它被写入者删除了

但是,我使用GET请求来呈现项目。

我做的代码是为了让你看得清楚。我可能漏油了!

代码语言:javascript
复制
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中获取这些项,还是使用特定的函数获取每个文件并过滤我的数组。

我收到这种格式的文件。

代码语言:javascript
复制
[
{PK:1, NAME:'Hello.jpg', IS_DELETE: 0}
{PK:2, NAME:'Nice.jpg', IS_DELETE: 1}
{PK:3, NAME:'To.jpg', IS_DELETE: 0}
]

谢谢。我不擅长英语。所以请理解。

等待你的智慧!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-01-01 10:58:27

不,您不能修改从服务器获得的响应,除非它有特定的端点可以这样做。这就像发送一封信和发出回复一样--除非你的收件人允许你发送一封带有特定请求的信,否则你不能让回复变得不同。‘只给我没有删除的项目’,但如果你不负责服务器,你唯一能做的就是过滤你得到的回应项目。

代码语言:javascript
复制
const getDetails = async () => {
  await get(`URL`)
  .then((res) => {
     const filtered = res.filter(file => file.IS_DELETE === 0);
     setFiles(filtered);
  })
}
票数 1
EN

Stack Overflow用户

发布于 2022-01-01 10:59:00

您可以将参数is_deleted与主链接在url连接中传递。

{url}?is_deleted=0

票数 0
EN

Stack Overflow用户

发布于 2022-01-01 11:06:41

根据您正在使用的数据库,可以这样做。例如,在SQL数据库中,可以执行SELECT * FROM files WHERE IS_DELETE != 0

但您也可以在前面这样做,如下所示:

代码语言:javascript
复制
const getDetails = async () => {
  const res = await get(`URL`);
  setDetails(res.filter(file => !file.IS_DELETE));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70548326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档