繁体   English   中英

在反应js中循环localstorage数据并形成API url参数

[英]loop localstorage data in react js and form API url params

I have a below function in React to get the keys to form api url based on what is present in localstorage, this function works perfect but I want to optimize it and have a map function instead of duplicates.

getFiltersFromLocal() {

let formurl = (localStorage.getItem(videoUrl) ? '&' + 'videoUrl=' + localStorage.getItem(videoUrl) : '') 
            
+ (localStorage.getItem(tvenName) ? '&' + 'enName=' + localStorage.getItem(tvenName) : '') 
            
+ (localStorage.getItem(tvGender) ? '&' + 'tvGender=' + (localStorage.getItem(tvGender)) : '')
            
+ (localStorage.getItem(tvStatus) ? '&' + 'tvStatus=' + (localStorage.getItem(tvStatus)) : '')

return formurl

}

为了优化这一点,我尝试了以下但没有运气。

getFiltersFromLocal() {
const localfilterdata = {
            "data": [
              {
                "keysToCheck": [videoUrl,tvenName,tvGender,tvStatus,tvidFrom,tvidTo,tvsortorderFrom,tvsortorderTo,tvstartFrom,tvstartTo,tvendFrom,tvendTo,tvsearch]
              },
              {
                "apiparams": ["videoUrl=","enName=","tvGender=","tvStatus=","idFrom=","idTo=","sortOrderFrom=","sortOrderTo=","startDateFrom=","startDateTo=","endDateFrom=","endDateTo=","search="],
              }
            ]
        }
    localfilterdata.data.map(k => {
            let formurl = localStorage.getItem(k.keysToCheck) ? '&' + k.apiparams + localStorage.getItem(k.keysToCheck) : ''
            return formurl
        })
}

注意:此 function 将根据本地存储中的项目形成 url,并将附加到 url 中。 下面的示例 url

https://example.com/getTvList?size=20&page=1&tvStatus=INACTIVE&enName="sample"

使用 function,如下所示:

url = FETCH_URL + '?size=' + stateData.pageSize + '&page=' + stateData.currentPage + this.getFiltersFromLocal()

嘿,我只是假设你试图做这样的事情,


const localfilterdata = {
    "keysToCheck": ['videoUrl','tvenName','tvGender','tvStatus','tvidFrom','tvidTo','tvsortorderFrom','tvsortorderTo','tvstartFrom','tvstartTo','tvendFrom','tvendTo','tvsearch'],
    "apiparams": ["videoUrl=","enName=","tvGender=","tvStatus=","idFrom=","idTo=","sortOrderFrom=","sortOrderTo=","startDateFrom=","startDateTo=","endDateFrom=","endDateTo=","search="]
}
localfilterdata.keysToCheck.map((k,index) => {
    let formurl = localStorage.getItem(k) ? '&' + localfilterdata.apiparams[index] + localStorage.getItem(k) : ''
    return formurl
}).join('')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM