如何在使用 JSON 的同时使用字符串模板?
How to use string template while using JSON?
我正在做一个项目,想根据一些条件使用 prodConfig
或 draftConfig
。我正在使用 Hasura 并获得 2 个不同的 JSON 响应,响应中只有 1 个不同的键,即 prodConfig
或 draftConfig
示例:
data.businesses_by_pk.draftConfig
要么
data.businesses_by_pk.prodConfig
所以,我想到了使用字符串模板 ( ${} ),但这行不通:
因此,我尝试了这个:
let configFile = Object.keys(data.businesses_by_pk)[1]; //This gives either 'prodConfig' or 'draftConfig'
let header = data.businesses_by_pk.configFile;
但是这个returns未定义。
请帮我解决这个问题。纠正我如果我哪里错了,我是新手。
let header = data?.businesses_by_pk?.draftConfig || data?.businesses_by_pk?.prodConfig
您可以使用optional chaining来挖掘对象。它不会出错,而是 return undefined
。然后,您可以在 return undefined.
时设置默认值
例如:let names = (data?.name || data?.firstName) ?? 'smith'
如果任何名称预先为 falsy
,则 smith
将是默认值
我正在做一个项目,想根据一些条件使用 prodConfig
或 draftConfig
。我正在使用 Hasura 并获得 2 个不同的 JSON 响应,响应中只有 1 个不同的键,即 prodConfig
或 draftConfig
示例:
data.businesses_by_pk.draftConfig
要么
data.businesses_by_pk.prodConfig
所以,我想到了使用字符串模板 ( ${} ),但这行不通:
因此,我尝试了这个:
let configFile = Object.keys(data.businesses_by_pk)[1]; //This gives either 'prodConfig' or 'draftConfig'
let header = data.businesses_by_pk.configFile;
但是这个returns未定义。
请帮我解决这个问题。纠正我如果我哪里错了,我是新手。
let header = data?.businesses_by_pk?.draftConfig || data?.businesses_by_pk?.prodConfig
您可以使用optional chaining来挖掘对象。它不会出错,而是 return undefined
。然后,您可以在 return undefined.
例如:let names = (data?.name || data?.firstName) ?? 'smith'
如果任何名称预先为 falsy
smith
将是默认值