【发布时间】:2020-04-23 08:06:54
【问题描述】:
我对反应很陌生,并试图了解如何传递道具。
第一个我设置了一个 Navlink 组件,它包含一个子类别属性:
<NavLink
catid={category.id}
to={category.route}
catname={category.name}
subcategories={category.subcategories}
>
{category.name}
</NavLink>
{category.route},{category.name},{category.subcategories}是从json文件中获取的,所以这部分是OK的。
每条路线都是这样定义的:
<Route
path='/epicerie-sucree'
render={(props) => (
<CategoryPage
{...props}
catid={10}
catname={"Epicerie sucrée"}
subcategories={props.subcategories}
/>
)}
/>
所以它渲染了一个名为<CategoryPage/>的组件
这是 CategoryPage 组件的代码:
export default function CategoryPage(props) {
return (
<div>
{ props.subcategories.map(subcat => (
<div>{subcat.subcat_name}</div>
))}
<FooterCat cat={catData.categories}></FooterCat>
</div>)
}
所以categoryPage组件应该能正确接收到通过router传过来的props吧?
相反,它会引发错误“TypeError:无法读取未定义的属性'map'”我不明白...... 谢谢
【问题讨论】:
-
你应该将props作为url参数传递并相应地定义url
-
如果在同一个结构中添加json文件内容就好了。
-
@Sameer Reza Khan。这里是api.jsonbin.io/b/5ea1636098b3d53752331597
标签: javascript reactjs react-router-dom