如何在反应渲染功能中创建动态href?

时间:2015-07-22 15:35:26

标签: javascript reactjs

我正在渲染帖子列表。对于每个帖子,我想使用post id作为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>
    );

我如何做到这一点,以便每个帖子都有/posts/1/posts/2等的href?

4 个答案:

答案 0 :(得分:151)

使用字符串连接:

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

JSX语法允许使用字符串或表达式({...})作为值。你不能混合两者。在表达式中,您可以使用任何JavaScript表达式来计算值。

答案 1 :(得分:81)

您也可以使用ES6反引号语法

$(".popup").click(function() {
     a = $(this).data("item");
     alert(a);
});

More info on es6 template literals

答案 2 :(得分:0)

你能试试吗?

在帖子中创建另一个项目,例如 post.link ,然后在将发布发送到渲染功能之前为其指定链接。

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

因此,上面的渲染函数应该是以下。

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

答案 3 :(得分:0)

除了Felix的答案,

href={`/posts/${posts.id}`}

也会很好地工作。很好,因为它全都在一个字符串中。