子组件props的数据为什么mounted中获取不到,只能在watch中监视吗?

  name: "TabNav",
  props: {
    labels: Array,
    setSelect: Function,
    selected: Number,
  },
  watch: {
    labels(val, OldVal) {
      this.$nextTick(() => {
        this.checkNavButtonStatus();
        const target = document.querySelector("li[data-active]");
        if (target) {
          this.activeTabToCenter(target);
        }
      });
    },
  },
  mounted() {
    window.addEventListener("resize", this.checkNavButtonStatus);
  },
阅读 2.5k
1 个回答

1.首先要看你的数据是请求回来的还是默认的值,
如果是请求回来的值 是有延迟的,
因为所有组件加载时就已经触发了mounted的函数,如果是请求回来的数据 通过props传递的话,一般是无法显示的
解决办法:在请求之前不让当前组件显示 请求回来后再让组件重新渲染,将拿回来得值,重新进行传值,这时,组件mounted就可以获取到props传递下来的数据了

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题