程咬金3斧头
程咬金3斧头
  • 发布:2019-05-14 11:30
  • 更新:2019-05-14 15:53
  • 阅读:1519

【已解决】v-if判断后,内部变量还报错。求大神帮忙看看

分类:uni-app

有个变量是从远程API获取。页面上使用v-if进行了判断,有值的时候才会执行内部代码。

但是现在在H5没问题。在其他平台就会报错,提示变量为null。具体报错信息在截图中,麻烦大佬帮忙看看。

环境是1.9.4 版hbulderx。

2019-05-14 11:30 负责人:无 分享
已邀请:
ZGH0709

ZGH0709

你变量什么时候赋值的,赋值之前怎么渲染?

  • 程咬金3斧头 (作者)

    在data中定义了 odds: null 。然后当tab切换到赔率的时候,通过API获取到数据,赋值给odds。 现在是一打开这个页面,就直接报错了。按道理,前面用了v-if判断,内部应该不会执行。 还有H5正常,小程序中报错,都是自定义组件模式。

    2019-05-14 15:20

  • 程咬金3斧头 (作者)

    目前是一打开页面就报错,也没有从API获取数据给odds赋值 。

    2019-05-14 15:23

  • ZGH0709

    回复 程咬金3斧头: 发个 demo 看一下,你跟他的问题不一样。

    2019-05-14 15:52

  • 程咬金3斧头 (作者)

    回复 ZGH0709: ok呀,我怎么发给你?公司的项目,私聊给你哦

    2019-05-14 16:03

  • ZGH0709

    回复 程咬金3斧头: 你写个 demo ,,,我感觉你的问题应该是刚加载的时候没有值,但是你用到了这个值。

    2019-05-14 20:22

  • 程咬金3斧头 (作者)

    回复 ZGH0709: ok,我已经提交了一个Demo,麻烦有空帮忙看下。其实这个这个值只在两个地方用到,截图中已经都在了。这个问题出现一个多月了,在app也报错,但是可以正常显示,所以就一直没处理。 注意H5没问题,小程序和APP才报错哦

    2019-05-14 21:37

  • ZGH0709

    回复 程咬金3斧头: 主要原因是因为里面用了过滤器,会导致在渲染时执行。可以考虑在初始化时通过设置好默认值。

    2019-05-15 11:41

  • 程咬金3斧头 (作者)

    回复 ZGH0709: 好的好的,知道原因就好了,我自己解决下。多谢!

    2019-05-15 15:27

MixR

MixR - 团队承接uniapp开发,qq472045067

你携程下面这样就不会报错了,但是这么用真的难受,改一下这个习惯把

data(){  
    return {  
        odds: {  
            odds_1: {  
                data: {  

                }  
            }  
        }  
    }  
}
  • 程咬金3斧头 (作者)

    谢谢回复。这样写,确实太难受了,难受的一批。 我在tab切换的时候还判断了odds是否有值,如果有值就不再次请求。

    2019-05-14 16:01

该问题目前已经被锁定, 无法添加新回复