首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >反应中模板字符串

反应中模板字符串
EN

Stack Overflow用户
提问于 2020-11-30 21:43:54
回答 2查看 2.1K关注 0票数 2

我得到了以下代码:

代码语言:javascript
复制
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是不好的。如果我拿出来的话:

代码语言:javascript
复制
To go back to your order please click {linkPage}. {`You will be redirect in ${count} seconds.`}

它运行良好,在其他一些情况下也是如此,但是我希望所有的东西都在一行中,使用模板字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-30 21:53:49

javascript正在为模板字符串中传递的任何变量调用toString。对于任何调用toString的对象,都会将对象对象作为值返回。

就你而言,你想要的是:

代码语言:javascript
复制
<Typography>
  {'To go back to your order please click'}
  {linkPage}
  {`linkPage.You will be redirect in ${count} seconds.`}
</Typography>
票数 -1
EN

Stack Overflow用户

发布于 2020-11-30 21:46:46

模板字符串仅用于使用JavaScript的普通字符串插值。它们总是计算成字符串。相反,使用JSX渲染React子元素允许对React元素进行插值。

你得到[object Object]是因为

代码语言:javascript
复制
` To go back to your order please click ${linkPage}.

linkPage是一个React子对象,它是一个普通的对象--当被胁迫到一个字符串时,[object Object]就是结果。模板文字总是计算字符串,没有其他-他们不能存储反应子。

所以,你需要这样的东西:

代码语言:javascript
复制
<Typography>
{
    'To go back to your order please click'
    {linkPage}
    '. You will be redirected in'
    {count}
    'seconds.'
}
</Typography>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65081583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档