[英]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.