代码之家  ›  专栏  ›  技术社区  ›  ateymour

Vue3在异步调用后将道具传递给子组件

  •  0
  • ateymour  · 技术社区  · 3 年前

    这些问题的变体似乎已经被问过了,但我无法找到一个具体到我的情况的答案。

    我试着用 $emit 正如一些其他线程所建议的,但如果我没有弄错的话,它似乎只有在孩子发出警报来提醒家长时才起作用,而不是反过来。

    异步调用后刷新子级的最佳方法是什么?我知道Vuex是一种选择,但我希望在了解更多之前了解Vue3的生命周期和道具是如何工作的。 以下是我目前拥有的(在放弃之后) )
    起源:

    <template>
      <div>
        <TextBlock :myText="myText" />
      </div>
    </template>
    
    <script>
    ...
    
    export default {
      components: {
        TextBlock
      },
      data: () => ({
        myText: []
      }),
      async created() {
        if (this.$route.params.text_id != null) {
          this.myText = await GetContent(this.$route.params.text_id);
          console.log(this.myText);  // Confirmed that text is updated
        }
      }
    };
    </script>
    

    儿童:

    <template>
      <code>
        {{ myText }}
      </code>
    </template>
    
    <script>
    ...
    export default {
      ...
      props: {
        myText: String
      },
    };
    </script>
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   akopyl    3 年前

    据我所见,你的代码应该可以工作,在证监会的操场上也可以。 Link