在从另一个组件传入正确的prop数据之前呈现的组件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在从另一个组件传入正确的prop数据之前呈现的组件相关的知识,希望对你有一定的参考价值。

我有一个名为EditPost的组件,它使用另一个名为PostForm的组件。我正在使用vuex存储来进行api调用,以便从EditPost beforeCreate方法的后端检索要编辑的post对象,并使用computed属性从商店获取检索到的帖子,然后我将其作为prop传递给PostForm组件。由于对象已经存在,我希望它的数据填充在PostForm的输入字段中。但是由于组件之前已呈现,因此对象的值不存在。如何在呈现组件之前确保数据安全到达。

我的EditPost组件基本上是这样的:

<template>
    <PostForm v-bind:key="fetchPost" />
</template>

<script>
beforeCreate() {
    this.$store.dispatch('loadPost');
}
computed: 
    fetchPost() {
        return this.$store.getters.getPost;
    }

</script>
答案

您可以等待loadPost中的beforeCreated()操作完成,然后在API响应之前不会创建该组件。但请注意,这不是最佳做法,因为用户在API返回响应之前不会看到任何内容。

例:

<template>
    <PostForm v-bind:key="fetchPost" />
</template>


<script>
async beforeCreate() {
    await this.$store.dispatch('loadPost');
}
computed: 
    fetchPost() {
        return this.$store.getters.getPost;
    }

</script>

以上是关于在从另一个组件传入正确的prop数据之前呈现的组件的主要内容,如果未能解决你的问题,请参考以下文章

react——子组件props字段类型类型限制——默认值设置。

如何在样式组件中动态呈现伪内容之前

ReactJS:组件列表的呈现不正确

react父组件传入的属性没有让子组件收到的prop变化

在父组件的状态更改中重新呈现子组件

获取传入 props 的组件的 props 类型