请稍等 ...
×

采纳答案成功!

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

能否在组件生命周期里面,执行一些异步请求,如果请求返回的结果为空,遍阻止render执行?

能否在组件生命周期里面,执行一些异步请求,如果请求返回的结果为空,便阻止render执行?

在render里面一些变量在渲染的时候并没有数据,导致控制台报错:

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


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

2回答

qq_Nicholas蚂蚁_04411783 2018-03-02 19:26:17

写个三元表达式判断请求回来数据再render组件,否则就是null

0 回复 有任何疑惑可以回复我~
吉诺比利GOAT 2018-02-22 08:59:56
根据你的截图 说明list不是一个数组 所以map不是一个function, 说明你的异步请求没有拿到数据,
一定记住 UI=render(data) 现有数据 然后再渲染, 渲染的结果因为数据的不同而不同。你去检查
一下你的异步请求哪里有问题,如果你用的redux来管理数据, 异步请求拿到数据, 然后改变redux状态
树里的状态 然后再用mapStateToProp去提取redux状态树上的数据 然后渲染出来


0 回复 有任何疑惑可以回复我~
  • 提问者 qq_忍_2 #1
    你好,谢谢你的答复
    情况是这样 : 异步请求没有任何问题,只是render比异步先执行了,所以没有拿到数据结果报错了
    
    我的问题是: 能否在请求结果未出来之前,不执行render?我发现很多地方都是render先实行了,而放在componentDidMount方法里执行的请求数据延迟返回.
    回复 有任何疑惑可以回复我~ 2018-02-25 21:10:03
问题已解决,确定采纳
还有疑问,暂不采纳
Redux+React Router+Node.js全栈开发
  • 参与学习       1822    人
  • 解答问题       750    个

全网唯一的React 16+Redux+React Router4实战课程,学到手是你的真本领!

了解课程
意见反馈 帮助中心 APP下载
官方微信