反应-如何创建动态(使用路由器)详细信息页面

时间:2019-02-12 18:57:34

标签: javascript reactjs react-router

这是我的数据(在单独的JS文件中):

const someData= [
    {
        id: 1,
        title: "Article 1",
        desc: "Some description lorem ipsum",
    },
    {
        id: 2,
        title: "Article 2",
        desc: "Some description lorem ipsum",
    },
    {
        id: 3,
        title: "Article 3",
        desc: "Some description lorem ipsum",
    }
]

export default someData;

现在我正在像这样映射数据:

- Articles.js file

const articleItems = this.state.someData.map(item => 
         <ArticleItem key={item.id} item={item} 
      />)

return(
   <div>{articleItems}</div>
)

列出所有文章,并仅在ArticleItem组件中显示文章标题。

- articleItem.js file

return(
   <h1>{props.item.title}</h1>
)

如何创建,以便您可以单击列表中的文章标题,然后转到该特定文章(网址应为/ article / id)并显示该特定文章的所有数据?

1 个答案:

答案 0 :(得分:0)

使用React Routers第4版来实现这一目标。

Article.js文件-

const articleItems = this.state.someData.map(item => 
        <Route key={item.id} path=`/${item.title}/${item.id}` render={
            <ArticleItem 
                {...props}
                item={item}
            />

        } /> 
      />)

return(
   <div>{articleItems}</div>
)

在您要渲染的文件中,链接呈现如下。

render() {
    return(
        <Link to=`/${item.title}/${item.id}`>{item.title}</Link>
    );
}

不要忘记导入“路线和链接”。 希望这会有所帮助。