How to pass string and component as prop?

2020-04-16 19:08发布

I can pass something like this fine:

<CardTitle title={this.props.post.title} subtitle={
    <Link to={this.props.post.author}>{this.props.post.author}</Link>
} />

But I need to pass both a component and some string text, but doing this doesn't work:

<CardTitle title={this.props.post.title} subtitle={(`
    This is a link: ${<Link to={this.props.post.author}>{this.props.post.author}</Link>}
`)} />

What's the right syntax for this?

1条回答
男人必须洒脱
2楼-- · 2020-04-16 19:24

Try passing it as a React Element altogether, not as a string:

<CardTitle
  title={this.props.post.title}
  subtitle={
    <span>
      This is a link: <Link to={this.props.post.author}>{this.props.post.author}</Link>
    </span>
  }
/>

Then should be able to render subtitle as is. If you're using React >16, you might want to use Fragments for this:

import { Fragment } from 'react';

// ...

subtitle={
  <Fragment>
    This is a link: <Link to={this.props.post.author}>{this.props.post.author}</Link>
  </Fragment>
}
查看更多
登录 后发表回答