为了账号安全,请及时绑定邮箱和手机立即绑定

react 父子组件执行顺序错误

react 父子组件执行顺序错误

GCT1015 2019-02-15 22:18:41
在父子组件中都有componentDidMount周期函数,但发现每次都是父组件的componentDidMount先执行,之后在执行子组件的各个周期函数。这跟react所说的生命周期完全相反。这是为什么?
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

class Test extends Component{

    componentWillMount(){

        console.log('子组件将要挂载')

    }

    render(){

        return(<p>{this.props.index}</p>)

    }

}


export default class TestPanel extends Component{

    componentDidMount(){

        console.log('父组件挂载完毕');

    }

    render(){

        return(

            <div>

                <Test index={1}/>

                <Test index={2}/>

                <Test index={3}/>

            </div>

        )

    }

}

根据你的描述,我自己写了个小demo,顺序是正确的,父组件引入了子组件,子组件先执行,最后父组件执行,即是如下:


3*子组件将要挂载

父组件挂载完毕


查看完整回答
反对 回复 2019-02-19
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

Text 组件在TestPanel组件的 render 中,当 TestPanel 调用 render 时 Text的所有生命周期都会重新来一遍,包括 constructor 方法。

我怀疑你说的是 class Text extends TestPanel的这种形式.


查看完整回答
反对 回复 2019-02-19
  • 2 回答
  • 0 关注
  • 1246 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号