2021-03-26

本文介绍了在Vue中遇到的一个问题,即在`created`和`mounted`生命周期钩子中如何正确处理异步数据。开发者尝试在`created`时获取数据并赋值给`data`,但在`mounted`中使用该数据时遇到问题,因为`mounted`不等待`created`中的异步操作完成。解决方案是将数据获取移到`mounted`中,确保在创建组件实例后获取并初始化数据,从而成功播放视频。
摘要由CSDN通过智能技术生成

Vue 获取不到data里面的数据 created 和 mounted 遇到的第一个坑:

在created 里面执行 methods 中的方法(该方法 用于获取数据 并 赋值给 data里面定义的数据),同时又有mounted 里的需要用到该数据

mounted 里面获取不到该数据,mounted 不会等待created 调用的方法执行结束再去执行,所以mounted 拿不到该数据

例如

 data() {
    return {
      vid: "",
      playAuth: ""
    };
  },
  created() {
    this.vid = this.$route.params.id;
    this.getPlayAuth();
    console.log("playAuth:" + this.playAuth);//控制台也没有 输出
  },
  methods: {
    getPlayAuth() {
      vodApi.getPlayAuth(this.vid).then(response => {
        this.playAuth = response.data.playAuth;
      });
    }
  },

  //在执行created 里面的方法的时候,mounted并不会等这次请求结束才去执行,而是直接就去执行,而此时data中的值还没有被赋值,所以拿不到
  mounted() {
    new Aliplayer(
      {
        id: "J_prismPlayer",
        vid: this.vid, // 视频id
        playauth: this.playAuth, // 播放凭证
        encryptType: "1", // 如果播放加密视频,则需设置encryptType=1,非加密视频无需设置此项
        width: "100%",
        height: "500px"
      },
      function(player) {
        console.log("播放器创建成功");
      }
    );
  }

我希望 先在created 里面执行 getPlayAuth() 方法 把得到的playAuth 赋值给data中的playAuth, 然后mounted 中的Aliplayer 完成初始化, 但是Aliplayer始终得不到playAuth,连控制台都没有打印出来信息 (估计是控制台打印信息的时候并没有等待getPlayAuth()方法执行完,mounted 也没有等待)
在这里插入图片描述控制台:在这里插入图片描述


于是我换了个写法:

试图在mounted 里面调用 methods 里的方法

 mounted() {
    this.getPlayAuth().then(response => {
      new Aliplayer(
        {
          id: "J_prismPlayer",
          vid: this.vid, // 视频id
          playauth: this.playAuth, // 播放凭证
          encryptType: "1", // 如果播放加密视频,则需设置encryptType=1,非加密视频无需设置此项
          width: "100%",
          height: "500px"
        },
        function(player) {
          console.log("播放器创建成功");
        }
      );
    });
  }

但是报错 :在这里插入图片描述应该是mounted 执行的时候 还没有这个方法,这个坑还没解决,
以后找资料再来吧, 请知道的小伙伴 可以指导一下

最后是直接在mounted 里面调用api解决了

mounted() {
    vodApi.getPlayAuth(this.vid).then(response => {
      this.playAuth = response.data.playAuth;
      console.log("palyAuth:" + this.playAuth);
      new Aliplayer(
        {
          id: "J_prismPlayer",
          vid: this.vid, // 视频id
          playauth: this.playAuth, // 播放凭证
          encryptType: "1", // 如果播放加密视频,则需设置encryptType=1,非加密视频无需设置此项
          width: "100%",
          height: "500px",
          autoplay: false
        },
        function(player) {
          console.log("播放器创建成功");
        }
      );
    });
  }

在这里插入图片描述

终于可以播放视频了在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2021-03-26 20:54:33,596 - Model - INFO - Epoch 1 (1/200): 2021-03-26 20:57:40,380 - Model - INFO - Train Instance Accuracy: 0.571037 2021-03-26 20:58:16,623 - Model - INFO - Test Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Best Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Save model... 2021-03-26 20:58:16,623 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 20:58:16,698 - Model - INFO - Epoch 2 (2/200): 2021-03-26 21:01:26,685 - Model - INFO - Train Instance Accuracy: 0.727947 2021-03-26 21:02:03,642 - Model - INFO - Test Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Best Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Save model... 2021-03-26 21:02:03,643 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 21:02:03,746 - Model - INFO - Epoch 3 (3/200): 2021-03-26 21:05:15,349 - Model - INFO - Train Instance Accuracy: 0.781606 2021-03-26 21:05:51,538 - Model - INFO - Test Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,538 - Model - INFO - Best Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,539 - Model - INFO - Save model... 2021-03-26 21:05:51,539 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 我有类似于这样的一段txt文件,你帮我写一段代码来可视化这些训练结果
02-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值