javascript - 根据 Next.js 中的查询字符串值获取数据
问题描述
我getInitialProps
提出了两个要求。
如果查询参数键是法人,现在我想再做一个。例如,如果 URL 是https://www.example.com.br/?legal-person
,则在一个 URL 中获取数据,否则在另一个 URL 中获取数据。
我可以看到 Next.js 有返回这个的查询对象,我什至尝试使用 if,但它没有像下面那样工作。它显示错误:
此条件将始终返回“false”,因为“ParsedUrlQuery”和“string”类型没有重叠。
但我也不知道我试图这样做是否是最好的方法。
CompareLoans.getInitialProps = async ({query}) => {
const loanTypesRes = await fetch(`${process.env.BFF_API}/api/loan-types/`)
const loanTypesResJson = await loanTypesRes.json()
if (query === 'legal-person') {
const initialLoans = await fetch(`${process.env.BFF_API}/api/loans-legal-person/initial`)
const initialLoansJson = await initialLoans.json()
} else {
const initialLoans = await fetch(`${process.env.BFF_API}/api/loans/initial`)
const initialLoansJson = await initialLoans.json()
}
return {loanTypes: loanTypesResJson, initialLoans: initialLoansJson}
}
解决方案
由于错误提到query
的是 type 的对象ParsedUrlQuery
,它不是您可以直接比较的字符串'legal-person'
。
您可以做的是检查对象中legal-person
是否存在query
。
CompareLoans.getInitialProps = async ({ query }) => {
// Custom logic here
if (Object.keys(query).includes('legal-person')) {
// Do something when `legal-person` is in the query string
} else {
// Do something else
}
// More custom logic here
}
推荐阅读
- javascript - 我的 javascript 库无法处理所有文档元素(调用 js 库问题之前和之后)
- amcharts4 - 如何显示线系列圆形项目符号与Amcharts 4相交的所有工具提示文本?
- r - 尝试在 R 中应用创建的函数
- java - 主题:Android Firebase 中的查询——数据检索
- c# - C# 如何知道如何正确修改命名空间以使其工作?
- c++ - R 4.0.3 内联编译在基于 math.h 的 macos 11.0 上失败
- android - Android 构建不起作用(在模块中发现重复的类 com.google.android.gms.internal.measurement.zzbt)
- entity-framework-core - 使用 Entity Framework Core 将成员添加到虚拟集合
- sql - 为redshift中的同一行元素创建具有不同组名的自定义列
- prepared-statement - H2 where 子句中的多个 case 语句