在我的資料庫中,有檔案。每個檔案都有“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}
]
謝謝你。我英語說的不好。所以請大家理解。
等待你的智慧!
uj5u.com熱心網友回復:
不,您不能修改從服務器獲得的回應,除非它專門有一個端點可以這樣做。這就像發送一封信并等待回復——除非您的收件人允許您發送一封帶有特定請求的信件(例如,“只給我未洗掉的專案”),否則您無法做出不同的回復,但如果您不在負責服務器,你唯一能做的就是過濾你得到的回應專案。
const getDetails = async () => {
await get(`URL`)
.then((res) => {
const filtered = res.filter(file => file.IS_DELETE === 0);
setFiles(filtered);
})
}
uj5u.com熱心網友回復:
您可以在 url 中傳遞引數 is_deleted 與主要的連接
{url}?is_deleted=0
uj5u.com熱心網友回復:
根據您使用的資料庫,可以這樣做。例如,在 SQL 資料庫中,您可以執行SELECT * FROM files WHERE IS_DELETE != 0
但您也可以在前端執行,如下所示:
const getDetails = async () => {
const res = await get(`URL`);
setDetails(res.filter(file => !file.IS_DELETE));
}
uj5u.com熱心網友回復:
我的想法是將 url 中的引數作為查詢字串傳遞,并在服務器端獲取值并將其放入資料庫查詢中
test = () => {
const [files, setFiles] = useState([]);
const getDetails = async () => {
await get(`URL?is_deleted=0`)
.then((res) => {
setFiles(res)
})
}
useEffect=(() => {
getDetails()
},[])
return (
<>
files.map((file) => (
<div>
{file}
</div>
))
</>
)}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/400027.html
標籤:javascript 反应 接口 条件语句
