我对反应和试图理解如何传递道具很陌生。
首先,我设置了一个Navlink组件,该组件包含子类别属性:
<NavLink
catid={category.id}
to={category.route}
catname={category.name}
subcategories={category.subcategories}
>
{category.name}
</NavLink>
{category.route}
,{category.name}
,{category.subcategories}
都是从json文件中获取的,所以这部分是可以的。
每条路线的定义如下:
<Route
path='/epicerie-sucree'
render={(props) => (
<CategoryPage
{...props}
catid={10}
catname={"Epicerie sucrée"}
subcategories={props.subcategories}
/>
)}
/>
所以它呈现一个名为的组件
下面是CategoryPage组件的代码:
export default function CategoryPage(props) {
return (
<div>
{ props.subcategories.map(subcat => (
<div>{subcat.subcat_name}</div>
))}
<FooterCat cat={catData.categories}></FooterCat>
</div>)
}
所以分类页面组件应该正确接收通过路由器传输的道具,不是吗?
相反,它抛出一个错误“TypeError:无法读取未定义”的属性“map”。。。谢谢
NavLink
不会将道具传递给路由渲染的组件,但您可以做的是传递发生的路由推送的一些“状态”。渲染
道具将路由道具传递给组件,然后将其传播到类别页面
组件。
<NavLink
to={{
pathname: category.route,
state: {
catid: { category.id },
catname: { category.name },
subcategories: { category.subcategories },
}
}}
>
{category.name}
</NavLink>
现在状态将通过位置道具上的route push传递。
props.location.state.subcategories
组件
export default function CategoryPage(props) {
return (
<div>
{
props.location.state.subcategories.map(subcat => (
<div>{subcat.subcat_name}</div>
))}
<FooterCat cat={catData.categories}></FooterCat>
</div>)
}
可能需要对catData.categories执行相同的操作,因为不清楚这是什么
我使用的反应与反应路由器的项目,我需要传递道具的子组件从路由。 我有这样的设置: App.js Home.js 问题是主组件总是给出错误“未定义”。我无法理解如何解决这个问题。如果我从Home.js中移除道具,组件渲染就很好。但当我尝试访问道具时,会出现错误。
我有一个模态,我想在其中放置一个动态嵌套视图。我认为这样做的一个好方法是像这样使用 我想把一些道具传给这些组件,就像我平时在React中一样 最终,我将移动到存储/获取状态中的这些属性,但是考虑到当前的实现,在定义开关
我试图使用react router将props从app.jsx传递到某个路由组件,但出现以下错误
我正在使用react with react路由器。我正试图在react路由器的“链接”中传递属性 “链接”呈现页面,但不将属性传递给新视图。下面是查看代码 如何使用“链接”传递数据?
我尝试使用react路由器将道具传递给组件,如下所示: 我如何做到这一点,但与反应路由器,我如何在组件本身使用它? 我试过这个,但不起作用:
我无法使用反应路由器通过道具。我到现在为止的代码: 错误截图 我正试图访问控制台中的id,就这么简单。 错误仅在我尝试传递道具时显示 源链接:https://reacttraining.com/react-router/web/api/Route/route-props