美文网首页
如何向路由组件中传入props

如何向路由组件中传入props

作者: 追风的云月 | 来源:发表于2018-06-24 21:33 被阅读0次

父组件向其中包含路由组件传值方式

image.png

我开始使用了高阶组件 包裹子组件 传入props 然后传给Route

componentAddProps=(Wrap)=>()=>{
        const props=this.props;
        return (
            <Wrap
                {...props}
            />
        )
    }
<div className="container">
    <Route path="/set" component={this.componentAddProps(UserManage})/>
</div>
//这里用了多重箭头函数,返回了一个函数,函数内部再返回这个子组件,因为Route的
//component组件只接收函数

然后在子组件中可以接收到父组件传入的props

但是有个大问题,在componentDidMount函数中不能调用父组件中可以改变props值的函数,不然会引起子组件重复渲染然后再度调用函数的循环。但是除了在生命周期函数中,其它时候可以调用,比如子组件挂载好之后的某个动作触发函数,这没问题。

所以在react-redux项目中 使用container容器包裹子组件传递props值 是最好的办法

<div className="container">
    <Route path="/set" component={UserManageCtnr}/>
</div>

如果只是向路由组件传入简单的字符串

<NavLink to={`${UPPER_PATH}/user:1`} activeClassName="current">用户管理</NavLink>
<Route path="/user:id" component={SomeComponent} />
通过this.props.params.id就可以获取传入的id 但是会明文显示在浏览器上面

如果是向路由组件传入对象 重点是JSON化对象

<Route path='/index/:data' component={SomeComponent} />
var data = {id:3,name:sam,age:36};
data = JSON.stringify(data);
var path = `/user/${data}`;

相关文章

  • 如何向路由组件中传入props

    父组件向其中包含路由组件传值方式 我开始使用了高阶组件 包裹子组件 传入props 然后传给Route 然后在子组...

  • Vue - 父子组件传值

    父组件向子组件传值 在子组件的props中声明想要接受的参数,父组件在使用子组件时传入参数。 使用props传值时...

  • Vue中父子组件如何进行通信?

    一、父子组件如何进行通信? 父组件向子组件通信使用 props, props定义在子组件中 子组件向父组件通信使用...

  • 封装组件的注意事项

    数据从父组件传入 props属性中添加验证规则: 通过props传入的参数不建议对其进行操作,会同时修改父组件中的...

  • Vue组件的属性验证

    在组件中的props传入的参数验证 格式

  • react第4天

    props 子组件 需要传入两个参数person size父组件使用到子组件在组件使用中传入 person siz...

  • props参数传入问题

    props参数传入: 方法组件, 需要传入props 参数, 方法内部直接使用props.(不需要this),cl...

  • 详解Vue.js父子组件通信之Props & $emit

    1.props 基本使用 props是父组件传子组件的传参方式,可以看到父组件中传入了一个parentCount变...

  • 第二十三节:Vue插槽:Vue插槽的认识和基本使用

    前言:通过上一节的学习,我们知道了如何将数据从父组件中传递到子组件中, 除了除了将数据作为props传入到组件中,...

  • Vue父子组件通信

    1.子组件的 props 属性通过子组件的 props 属性,可以将父组件上的数据传入子组件,如下例中的 deli...

网友评论

      本文标题:如何向路由组件中传入props

      本文链接:https://www.haomeiwen.com/subject/nojsyftx.html