采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我用了airbnb的语法检查,我发现airbnb不论是didMount还是didUpdate都不推荐去setState,我具体研究了下好像也觉得不该在这两个生命周期中调用setState,didMount中调用会造成2次render,而didUpdate感觉会是一个死循环啊,因为setState的时候就didUpdate然后又会setState,不知道为什么没报错,我感觉这里是不是应该在componentWillReceiveProps这个生命周期中调用更好啊
是这样的,setState 是我们从服务器获取数据之后,将数据存储到 state 中然后出发 React 的组件更新,显示数据。所有,必须保证组件都渲染完成之后才能这么做,因此放在 didMount 中
老师说的是fetch到数据后然后setState吧,这里我就没搞明白,为什么需要在didMount中。因为在willMount中感觉更复合逻辑 因为第一我并不需要真实的dom节点获取什么东西,第二在willMount中fetch数据后再调用setState如果是先拿到数据再render的会少render一次(当然这种情况基本没有),但是就算是先用初始state去render一遍然后才异步的拿到数据setState再render一遍,本质上跟在didMount中也是一样的呀,并且在willMount里先fetch的很可能拿到数据更快呀
登录后可查看更多问答,登录/注册
已经对React Router4与Webpack2进行了项目升级
1.2k 13
1.5k 12
1.1k 11
996 11