通过React路由传递数据可以使用两种方法:URL参数和路由状态。
<Link>
组件将数据作为参数添加到URL中,然后在目标组件中通过props.match.params
来获取传递的参数。例如,假设我们有一个列表页和一个详情页,要在列表页点击某个项目后跳转到详情页并传递数据:
列表页:
import { Link } from 'react-router-dom';
const ListPage = () => {
const data = { id: 1, name: '示例数据' };
return (
<div>
<h1>列表页</h1>
<Link to={`/detail/${data.id}`}>查看详情</Link>
</div>
);
};
详情页:
const DetailPage = (props) => {
const { id } = props.match.params;
return (
<div>
<h1>详情页</h1>
<p>ID: {id}</p>
</div>
);
};
<Route>
组件的render
属性来传递状态。例如,假设我们有一个登录页和一个首页,要在登录成功后跳转到首页并传递用户信息:
登录页:
import { useHistory } from 'react-router-dom';
const LoginPage = () => {
const history = useHistory();
const handleLogin = () => {
const user = { id: 1, name: '示例用户' };
history.push({
pathname: '/home',
state: { user }
});
};
return (
<div>
<h1>登录页</h1>
<button onClick={handleLogin}>登录</button>
</div>
);
};
首页:
const HomePage = (props) => {
const { user } = props.location.state;
return (
<div>
<h1>首页</h1>
<p>用户ID: {user.id}</p>
<p>用户名: {user.name}</p>
</div>
);
};
这样就可以通过React路由传递数据了。请注意,以上示例中使用的是React Router v5版本。如果使用其他版本,请查阅对应版本的文档。
(注意:根据要求,不能提及具体的云计算品牌商,因此没有提供腾讯云相关产品和产品介绍链接地址。)
领取专属 10元无门槛券
手把手带您无忧上云