您好 老师 props.chartData ,父组件是axios获取的,传给子组件

来源:5-9 ValidateForm 编码第二部分 - 尝试父子通讯

班大人

2020-11-07

问题: props.chartData 拿不到 父组件axios 获取的值
new Aliplayer 这个是初始化
但我不知道怎么拿到动态的props 赋值给 new Aliplayer 里的变量 请老师指点



<template>
  <div>
    <div class="prism-player" id="J_prismPlayer"></div>
  </div>
</template>

<script>
import { ref, watch, reactive, onMounted, defineComponent } from "vue";

export default defineComponent({
  name: "AliyunPlayer",
  props: {
    chartData: Array
  },
  setup(props, context) {
    onMounted(() => {
      let player = new Aliplayer({
        id: "J_prismPlayer", // 容器id
        source: 'props.chartData[1]', //视频地址
        cover: 'props.chartData[0]', //播放器封面图
        autoplay: false, // 是否自动播放
        width: "100%", // 播放器宽度
        height: "4rem", // 播放器高度
        playsinline: true,
        seekable: true
      });
      watch(
        () => props.chartData,
        (oldVlaue, newValue) => {
          console.log(oldVlaue, "改变");
        }
      );

 
    });

    const filterNode = (value, data) => {
      if (!value) return true;
      return data.label.indexOf(value) !== -1;
    };
    const handleNodeClick = (data, node, obj) => {
      if (data.id) {
        context.treeId = data.id;
        context.treeDataObj = data;
        context.nodeDataTree = node;
        console.log(data);
      }
    };
    return {
      filterNode,
      handleNodeClick
    };
  }
});
</script>

 
  
写回答

1回答

张轩

2020-11-08

同学你好 你这个 props 是父组件中异步获取的吗? 可以在父组件已经有值的时候在渲染这个组件 使用 v-if 做一个判断

<div v-if="asyncData"><player :data="asyncData"/></div>

0
2
班大人
非常感谢!
2020-11-09
共2条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程