我得到了以下代码:
export default function CancelledPayment() {
const linkPage = <Link to="/dashboard/payment" className={clsx(classes.paymentLinkTypography, classes.link)}> here </Link>;
return (
<Container>
<Paper >
<Paper />
<Typography>
{` To go back to your order please click ${linkPage}.You will be redirect in ${count} seconds.`}
</Typography>
</Paper>
</Container>
);
}知道它为什么要将linkPage作为对象对象返回吗?计数器是正确的,一切正常,只是这个linkPage是不好的。如果我拿出来的话:
To go back to your order please click {linkPage}. {`You will be redirect in ${count} seconds.`}它运行良好,在其他一些情况下也是如此,但是我希望所有的东西都在一行中,使用模板字符串。
发布于 2020-11-30 21:53:49
javascript正在为模板字符串中传递的任何变量调用toString。对于任何调用toString的对象,都会将对象对象作为值返回。
就你而言,你想要的是:
<Typography>
{'To go back to your order please click'}
{linkPage}
{`linkPage.You will be redirect in ${count} seconds.`}
</Typography>发布于 2020-11-30 21:46:46
模板字符串仅用于使用JavaScript的普通字符串插值。它们总是计算成字符串。相反,使用JSX渲染React子元素允许对React元素进行插值。
你得到[object Object]是因为
` To go back to your order please click ${linkPage}.linkPage是一个React子对象,它是一个普通的对象--当被胁迫到一个字符串时,[object Object]就是结果。模板文字总是计算字符串,没有其他-他们不能存储反应子。
所以,你需要这样的东西:
<Typography>
{
'To go back to your order please click'
{linkPage}
'. You will be redirected in'
{count}
'seconds.'
}
</Typography>https://stackoverflow.com/questions/65081583
复制相似问题