美文网首页
React丨componentWillReceiveProps

React丨componentWillReceiveProps

作者: wangjianuo | 来源:发表于2020-05-28 14:57 被阅读0次

    问题描述

    同一个页面,通过参数uuid区分,不同功能

    • /conf/main - 新增页面
    • /conf/main?uuid=1667c084b2104ca58759c9a88cbd96f6 - 修改页面

    问题:从修改页面 路由跳转 新增页面, 不执行componentWillMount函数,导致不改变props ?

    解决问题

    在这个生命周期中,可以在子组件的render函数执行前获取新的props,从而更新子组件自己的state。 可以将数据请求放在这里进行执行,需要传的参数则从componentWillReceiveProps(nextProps)中获取。而不必将所有的请求都放在父组件中。于是该请求只会在该组件渲染时才会发出,从而减轻请求负担。componentWillReceiveProps在初始化render的时候不会执行,它会在Component接受到新的状态(Props)时被触发,一般用于父组件状态更新时子组件的重新渲染

    componentWillReceiveProps(nextProps, nextContext) {
        // 判断uuid是否改变。如果没有改变直接return;如果改变了做你想做的事情
        if (this.props.location.query.uuid === nextProps.location.query.uuid) {
            return
        } else {
           // todo...
        }
    }
    

    参考资料

    https://blog.csdn.net/RuiKe1400360107/article/details/89554600
    

    相关文章

      网友评论

          本文标题:React丨componentWillReceiveProps

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