请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问老师为何此处没有循环更新

本节课计算总价时,在dom更新后执行了这个钩子函数,但是在钩子函数里又更新了dom为何没有造成死循环而是只调用了一次呀?

   componentDidUpdate = () => {
    this.computedAll()
  }
  computedAll = () => {
    let all = 0;
    this.state.list.filter((v)=> v.isActive).forEach((v)=>{
      all += v.price * v.number;
    })
    this.setState({
      all
    });
  }

正在回答 回答被采纳积分+3

插入代码

1回答

西门老舅 2023-05-06 10:24:27

你好,componentDidMount是初始的钩子,当数据改变后,并不会再次触发这个钩子。

数据改变后,只会触发componentDidUpdate和render这两个钩子

0 回复 有任何疑惑可以回复我~
  • 提问者 Panda_io #1
    抱歉老师,粘错代码了,现在更正了,我理解没有造成死循环更新是因为PureComponent的缘故
    回复 有任何疑惑可以回复我~ 2023-05-06 11:49:37
  • 西门老舅 回复 提问者 Panda_io #2
    没事没事,有问题留言就好
    回复 有任何疑惑可以回复我~ 2023-05-06 16:07:04
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

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

帮助反馈 APP下载

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

公众号

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