Reactjs 如果变量为';是空的吗?
如果变量searchQuery的值是空字符串,并且将此逻辑放在模板文本中,那么如何省略该变量 代码:Reactjs 如果变量为';是空的吗?,reactjs,ecmascript-6,graphql,Reactjs,Ecmascript 6,Graphql,如果变量searchQuery的值是空字符串,并且将此逻辑放在模板文本中,那么如何省略该变量 代码: 您可以使用一个使用模板字符串的函数来构建查询。 您可以添加更多变量或控件以满足您的需要 const myvars = { searchQuery : "", mType : "pdf", filterMethod : "asc", season : "" } const buildQuery = (vars) => { let sq = vars.searchQuery ==
您可以使用一个使用模板字符串的函数来构建查询。 您可以添加更多变量或控件以满足您的需要
const myvars = {
searchQuery : "",
mType : "pdf",
filterMethod : "asc",
season : ""
}
const buildQuery = (vars) => {
let sq = vars.searchQuery == "" ? "" : "$searchQuery: String,"
let mt = vars.mType == "" ? "" : "$mType: MediaType,"
let fm = vars.filterMethod == "" ? "" : "$filterMethod: [MediaSort],"
let ss = vars.season == "" ? "" : "$season:MediaSeason"
var query = `query RunSearch(${sq} ${mt} ${fm} ${ss}){
Page(perPage:10, page: 1){
pageInfo {
total
currentPage
lastPage
hasNextPage
perPage
}
media(type: $mType, search: $searchQuery, sort:$filterMethod, season:$season){
title{
english
}
format,
description(asHtml:true),
averageScore,
studios(isMain:true) {
nodes {
name
}
},
coverImage {
large
color
},
genres
}
}
}`;
return query;
}
let myquery = buildQuery(myvars);
console.log(myquery)
你可以检查你得到的变量,然后根据你的意思构建查询。你是说一个带有不同查询赋值的if-else语句?我已经这样做了,但是这是很多重复的代码,没有更好的方法吗?像这样的?是的,需要在这行tho中添加另一个类似的变量,谢谢
media(${sq2}type:$mType,sort:$filterMethod,seasure:$seasure)
const myvars = {
searchQuery : "",
mType : "pdf",
filterMethod : "asc",
season : ""
}
const buildQuery = (vars) => {
let sq = vars.searchQuery == "" ? "" : "$searchQuery: String,"
let mt = vars.mType == "" ? "" : "$mType: MediaType,"
let fm = vars.filterMethod == "" ? "" : "$filterMethod: [MediaSort],"
let ss = vars.season == "" ? "" : "$season:MediaSeason"
var query = `query RunSearch(${sq} ${mt} ${fm} ${ss}){
Page(perPage:10, page: 1){
pageInfo {
total
currentPage
lastPage
hasNextPage
perPage
}
media(type: $mType, search: $searchQuery, sort:$filterMethod, season:$season){
title{
english
}
format,
description(asHtml:true),
averageScore,
studios(isMain:true) {
nodes {
name
}
},
coverImage {
large
color
},
genres
}
}
}`;
return query;
}
let myquery = buildQuery(myvars);
console.log(myquery)