[英]React Hooks: Getting data in “location” but not in params with “Link”
您好,我正在尝试通过 url 将参数/数据从一页传递到另一页,下面的链接是传递数据的代码。
{Array.isArray(products) ?
products.map((product, i) =>
<tbody>
<tr>
<td>{i + 1}</td>
<Link to={`/campaing/${product._id}`}>
<td>{product.name}</td>
</Link>
<td>Rs: {product.price}</td>
<td>{product.rating}</td>
</tr>
</tbody>
) : <h3>No Product Present Add One</h3>
}
并且在应用程序中所有路由器都存在
<PrivateRoute path="/user" component={BoardUser} />
<PrivateRoute path="/campaing/:id" exact component={Campaings} />
<PrivateRoute path="/mod" component={BoardModerator} />
<PrivateRoute path="/admin" component={BoardAdmin} />
在campaig路由器中
const {id} = useParams();
console.log(id + ' -------------------'); //undefined
console.log(props.location.pathname) //campaing/21ye7wqdg3276e
提前致谢。 如果您想了解更多详情,请告诉我。
请访问此链接: 在 React-Router v5.1 中引入的 Hooks
希望这个链接能解决你的问题。
修复了只需要获取 computedMatch 的问题,因为它只是通过 props 从 body 传递位置和数据。
const PrivateRoute = ({ component: Component, computedMatch: match }) => {
const isLoggedIn = JWTDATA();
console.log(match);
return (
<Route {...match}
render={props =>
isLoggedIn ? (
<Component {...props} />
) : (
<Redirect to={{ pathname: '/login', state: { from: props.location } }} />
)
}
/>
)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.