通过react路由器将道具传递给另一个组件可以通过以下步骤实现:
<Link>
组件将道具传递给目标组件。例如,假设你有一个名为ComponentA
的组件,你想将道具propValue
传递给ComponentB
组件:import { Link } from 'react-router-dom';
function ComponentA() {
const propValue = 'Hello, World!';
return (
<Link to={{
pathname: '/componentB',
state: { propValue }
}}>
Go to Component B
</Link>
);
}
useLocation
钩子或withRouter
高阶组件来获取传递的道具。例如,假设你的目标组件是ComponentB
:import { useLocation } from 'react-router-dom';
function ComponentB() {
const location = useLocation();
const propValue = location.state.propValue;
return (
<div>
<h1>Component B</h1>
<p>Prop value: {propValue}</p>
</div>
);
}
或者,如果你不使用钩子,你可以使用withRouter
高阶组件:
import { withRouter } from 'react-router-dom';
function ComponentB(props) {
const propValue = props.location.state.propValue;
return (
<div>
<h1>Component B</h1>
<p>Prop value: {propValue}</p>
</div>
);
}
export default withRouter(ComponentB);
这样,当你从ComponentA
点击链接进入ComponentB
时,道具propValue
将被传递并在ComponentB
中显示出来。
请注意,以上示例中使用的是React Router v6的语法。如果你使用的是React Router v5或更早版本,请根据相应版本的文档进行调整。
领取专属 10元无门槛券
手把手带您无忧上云