Как создать динамический href в функции react render?



Я делаю список сообщений. Для каждого сообщения я хотел бы отобразить тег привязки с идентификатором post как часть строки href.



render: function(){
return (
<ul>
{
this.props.posts.map(function(post){
return <li key={post.id}><a href='/posts/'{post.id}>{post.title}</a></li>
})
}
</ul>
);


как мне это сделать, чтобы каждый пост имел href из /posts/1,/posts/2 etc?

657   3  

3 ответов:

использовать конкатенацию строк:

href={'/posts/' + post.id}

синтаксис JSX позволяет использовать строки или выражения ({...}) в качестве значений. Вы не можете смешать оба. Внутри выражения вы можете, как следует из названия, использовать любое выражение JavaScript для вычисления значения.

вы можете использовать синтаксис ES6 backtick тоже

<a href={`/customer/${item._id}`} >{item.get('firstName')} {item.get('lastName')}</a>

дополнительная информация о литералах шаблона es6

не могли бы вы попробовать это ?

создайте еще один элемент в сообщении, например пост.ссылка затем назначьте ссылку на него перед отправкой post функции render.

post.link = '/posts/+ id.toString();

таким образом, вышеуказанная функция рендеринга должна быть следующей.

return <li key={post.id}><a href={post.link}>{post.title}</a></li>

Comments

    Ничего не найдено.