请稍等 ...
×

采纳答案成功!

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

遇到问题Cannot read property 'projectModes' of undefined,无法断点调试

老师,您好。我在完成了7-5自定义组件实现列表Item后,App正常。

在完成了7-6和7-7这两课后。App总是报如下错误。

https://img1.sycdn.imooc.com/szimg/5db5a7830970118b00000000.jpg

bug所指的PopularPage.js相关代码如下:

https://img1.sycdn.imooc.com/szimg/5db5a8e2095fe1ed08120313.jpg

https://img1.sycdn.imooc.com//szimg/5db5a96509b3551305920349.jpg

https://img1.sycdn.imooc.com//szimg/5db5a9170976ed1611740199.jpg

我把您这两课的视频反复看了几遍。对照自己的代码,没有发现问题。

我试着用断点调试,发现不管用。

我在这4个地方打了断点,但是只在_store() 这里停了下来。为什么其它3个地方的断点不停呢?

打断点的时候https://img1.sycdn.imooc.com//szimg/5db5b4390972281302270038.jpghttps://img1.sycdn.imooc.com//szimg/5db5b467094df2f802040031.jpg最右边的标志在蓝色和灰色状态下都试过。结果一样。

action的断点没停

https://img1.sycdn.imooc.com//szimg/5db5ac0d097d3b2406540200.jpg

reducer的断点没停

https://img1.sycdn.imooc.com//szimg/5db5ac5009b324c803120180.jpg

PopularPage里的断点为什么loadData(loadMore)这个断点也不停呢?

https://img1.sycdn.imooc.com/szimg/5db5acb5090dbb5206490329.jpg

只有_store()这个断点停了。发现popular是空的

store的数据如下:

https://img1.sycdn.imooc.com/szimg/5db5acf10985738b06060024.jpg

store = {items: Array(0), isloading: false, projectModes: Array(0), hideLoadingMore: true}

————————————————

看来store.projectModes拿不到数据。

————————————————

我检查了下const URL。后面加个java直接输入这个网址能拿到返回数据。

————————————————

我现在不知道怎么办了。

action/popular/index.js和reducer/popular/index.js这两个文件打断点完全无效,无法调试。

如果光对照代码的话,我把您的视频看了好几遍,也没有发现错误。

这个问题困扰我好久了,长时间自己摸索,一直找不到答案。还请老师多多指点。谢谢您!


正在回答

1回答

可以使用debugger代替断点;

关于报错的问题,可以对照下这块的课程源码:

https://git.imooc.com/coding-304/GitHub_Advanced/src/c25f16202cdf9fe28074a1c7b96b26613963bfc5

看是不是有出入的地方。


1 回复 有任何疑惑可以回复我~
  • 提问者 suyx #1
    谢谢老师!问题解决了,好开心^_^
    
    按照老师给的代码,去一一对照了。发现在PopularPage.js中,写 _store() 时,忘记return store;了。晕……我以为有了let store = popular[this.storeName];就够了,没想过要return。这下印象深刻了o(* ̄︶ ̄*)o
    
    关于debug。APP正常后,打断点和在代码中写debugger;就都能用了。有bug的时候,在action/popular/index.js和reducer/popular/index.js这两个文件打断点和在代码中写debugger;都不管用。
    回复 有任何疑惑可以回复我~ 2019-10-28 23:34:34
  • 提问者 suyx #2
    老师,我还有个疑问。
    
    当我忘记return store了,为什么在其他代码都没有错误的情况下,返回的popular和store数据是空的呢?
    
    当我忘记在_store() 中写return store;时,
    当程序首次运行到
    componentDidMount() {
        this.loadData();
      }
    这个时候会运行loadData(loadMore)中的onRefreshPopular(this.storeName, url, pageSize)吧?
    为什么popular = { },store.items和store.projectModes这些全是空的呢?
    回复 有任何疑惑可以回复我~ 2019-10-28 23:54:15
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

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

帮助反馈 APP下载

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

公众号

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