Javascript 用函数对语句或语句作出反应
我有一个JSX语句,它将道具呈现为:Javascript 用函数对语句或语句作出反应,javascript,reactjs,Javascript,Reactjs,我有一个JSX语句,它将道具呈现为: {rentRate | | quotedSeatCharges} 这样就很好了。但是,我有一个函数,在它前面加上一个货币名称/符号,对其进行格式化: const formatCost = (cost) => { if (currencySymbol) return `${currencySymbol}${cost}` return `${currencyName} ${cost}` } 我试着这样称呼它: {formatCost(租金
{rentRate | | quotedSeatCharges}
这样就很好了。但是,我有一个函数,在它前面加上一个货币名称/符号,对其进行格式化:
const formatCost = (cost) => {
if (currencySymbol) return `${currencySymbol}${cost}`
return `${currencyName} ${cost}`
}
我试着这样称呼它:
{formatCost(租金率| |报价seatcharges)}
这对第一个道具有效,但对第二个道具无效。
我也试过了
{formatCost(rentarate)| formatCost(quotedSeatCharges)}
这仍然适用于第一个道具,但第二个道具最终为null
我还尝试在家长级别将这两个道具合二为一,如下所示:
rentSeatCost={rentRate}
rentSeatCost={quotedSeatCharges}
然后在子组件中:
formatCost(rentSeatCost)
但只对第一个道具有效,对第二个道具无效,就像第一次尝试一样
有没有办法用我的方法做到这一点?或者我应该放弃并找到一个替代方案吗?打印您的currencyName和currencySymbol变量,在调用函数时不得设置它们。您可以使用三元变量,如
rentRate?formatCost(租金):formatCost(quotedSeatCharges)
希望能有帮助
谢谢所以我不再看子组件,而是看上面的父组件。我对子组件进行了两次渲染,结果发现我只在两个组件中的一个组件中传入了
currencySymbol
和currencyName
,这就是为什么另一个组件没有同时使用两种货币
谢谢大家花时间来研究这个问题。这是我自己的疏忽。这有什么不同吗?我可能只是手动打印出来,作为最后的手段,就像你提到的那样。只是想看看是否有办法绕过这个方法。好吧,只是在调试模式下-如果你在格式成本函数中使用console.log(currencycomsymbol),它会给你期望的符号吗?为什么你要尝试使用自己的?存在
new Intl.NumberFormat('en-US',{style:'currency',currency:'USD'})。format(2304718)==“$2304718.00”
@JaredSmith如果由我决定,我会这么做。然而,我并不是实现这个的那个人,这个项目需要货币名称。我很困惑,你的|
有什么意义?您是说您“想同时呈现”您想同时呈现formatCost(rentRate)
和formatCost(quotedSeatCharges)
?或者您想同时使用美元和美元渲染其中一个?你能发布这个组件的代码吗?为什么不直接从formatCost函数中吐出这两个呢formatCost(rentRate,quotedSeatCharge)
@JaredSmith不过,谢谢你的链接!如果我早些时候加入的话,这肯定会对项目的开始阶段有所帮助。非常欢迎,国际api是Javascript中没有人知道的最好的东西之一。谢谢,但我正在尝试呈现两者,而不是一个或另一个。像这样{formatCost(rentRate)&&formatCost(quotedSeatCharges)}
?嗯。。。您应该在函数中处理两个参数查看您的第一个语句,{rentRate | | quotedSeatCharges}
,似乎只有其中一个会呈现。但你想把两者都渲染出来?