请稍等 ...
×

采纳答案成功!

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

为什么views/admin/list,componentDidMount周期时,访问不到Layout赋值给window的__LOADING__了?

正在回答

2回答

这里是跟 request 有关系,request(this._toggleLoading)({ 这里其实执行的时候,是先传递进去了 list page (也就是继承了 laytout 的子组件)的 _toggleLoading 方法,通过它来修改 loading 状态,而 views/home/index.js 则是通过 request(window.__LOADING__)({ 则是来自父组件的 loading 控制方法,你把两个都修正为 request(window.__LOADING__)({ ,来测试下看看,会不会符合预期呢

0 回复 有任何疑惑可以回复我~
  • 提问者 bear丶 #1
    我找到原因了,是因为这段代码
    if (!dataSource || !dataSource.length) { return null }
    回复 有任何疑惑可以回复我~ 2019-02-10 21:24:59
  • Scott 回复 提问者 bear丶 #2
    赞!!!
    回复 有任何疑惑可以回复我~ 2019-02-16 17:46:19
Scott 2019-02-02 20:50:58

是在 _getAllMovies 这时候读取不到么,打印出来的值是什么? undefined 么,还是 null

1 回复 有任何疑惑可以回复我~
  • 提问者 bear丶 #1
    恩,是在_getAllMovies读取不到,打印值为undefined;                                                       
    
    views/admin/list.js,_getAllMovies会先于
    layouts/default.js,componentDidMount () => {
      window.__LOADING__ = this.toggleLoading
    } 执行;                                                                             
    
    但是为什么同样是使用了layouts/default模板组件的
    views/home/index.js,可以读取到window.__LOADING__呢?
    回复 有任何疑惑可以回复我~ 2019-02-02 23:04:04
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信