首页 > web前端 > js教程 > 正文

如何在 React-Router 中传递 Props?

Susan Sarandon
发布: 2024-11-01 13:20:29
原创
816 人浏览过

How to Pass Props in Link with React-Router?

在 Link React-Router 中传递 Props

React-Router 的 Link 组件允许在组件之间传递数据。为此,请在链接的 to 属性中定义一个参数,并且可以使用 this.props 在链接组件中访问该参数的值。

问题:

提供的代码无法将 props 传递给链接的组件,因为 中缺少路由路径。

解决方案:

将路径参数添加到中定义:

<Route name="ideas" path="/:testvalue" handler={CreateIdeaView} />
登录后复制

使用Location传递数据:

使用react-router v4/v5时,可以通过location对象传递数据:

链接(查询):

<Link to={{pathname: '/', query: {backUrl: 'theLinkData'}}} />
登录后复制

链接(搜索):

<Link to={{pathname: '/', search: '?backUrl=theLinkData'}} />
登录后复制

访问数据(功能组件) ):

const CreatedIdeaView = () => {
  const { query, search } = useLocation();
  console.log(query.backUrl, new URLSearchParams(search).get('backUrl'));
};
登录后复制

访问数据(类组件):

class CreateIdeaView extends React.Component {
  render() {
    console.log(this.props.location.query.backUrl);
    return <div>{this.props.location.query.backUrl}</div>;
  }
}
登录后复制

示例:

class App extends React.Component {
  render() {
    return (
      <div>
        <Link to={{pathname: '/ideas', query: {foo: 'bar'}}} />
        <RouteHandler />
      </div>
    );
  }
}
登录后复制
class Ideas extends React.Component {
  render() {
    const { match, location } = this.props;
    console.log('props form link', this.props);
    return <p>{location.query.foo}</p>;
  }
}
登录后复制

以上是如何在 React-Router 中传递 Props?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!