Vuejs2 道具显示在模板中,但不显示在函数中

Vuejs2 道具显示在模板中,但不显示在函数中,vuejs2,Vuejs2,My\u id prop很好地显示在此子模板中,但console.log(this.\u id)在函数中没有显示任何内容,甚至没有“未定义”这是我的子模板: <template> <div> LIST {{ _id }} // OK , I CAN SEE IT </div> </template> <script> import axios from "axios"; axios.defaults.with

My\u id prop很好地显示在此子模板中,但console.log(this.\u id)在函数中没有显示任何内容,甚至没有“未定义”这是我的子模板:

<template>
  <div>
    LIST
    {{ _id }} // OK , I CAN SEE IT 
  </div>
</template>

<script>
import axios from "axios";
axios.defaults.withCredentials = true;
export default {
  name: "messages",
  props: ["_id"],
  data() {
    return {
      messages: []
    };
  },

  methods: {
    getMessages: function() {
      console.log(this._id);  // NOTHING SHOWN
      axios
        .post(this.server + "getMessages", { _id: this._id })
        .then(response => {
          this.users = response.data;
        })
        .catch(function(error) {
          console.log(error);
        });
    }
  },
  mounted: function() {
    console.log(this._id); // NOTHING SHOWN
    this.getMessages();
  }
};
</script>

列表
{{{u id}}//好的,我可以看到
从“axios”导入axios;
axios.defaults.withCredentials=true;
导出默认值{
名称:“消息”,
道具:[“_id”],
数据(){
返回{
信息:[]
};
},
方法:{
getMessages:function(){
console.log(this._id);//未显示任何内容
axios
.post(this.server+“getMessages”,{u-id:this.\u-id})
。然后(响应=>{
this.users=response.data;
})
.catch(函数(错误){
console.log(错误);
});
}
},
挂载:函数(){
console.log(this._id);//未显示任何内容
这是getMessages();
}
};
请帮帮我,我不能理解这种行为。如果没有任何console.log(this.\u id)正在工作,那怎么可能呢

编辑:这是我的父模板中的组件调用:

 <messages :_id="this.user._id"></messages>

编辑2: 哦,我想我知道,这是因为这个.user.\u id是从父axios调用异步来的,所以它没有及时出现! 这正在工作,我可以在子系统中使用以下命令控制台.log(This.\u id):

<messages :_id="1111111111"></messages>

在调用子组件之前,是否有方法等待this.user.\u id填充


由phen0menon解决

主要问题是您访问可以在父组件中动态显示的属性

要解决此问题,请使用任何子组件,以这种方式获取任何动态道具:

<template>
  <child-component v-if="someData"></child-component>
</template>


当您将组件添加到模板时,是否通知了
\u id
的值?是,因为它显示在子模板中。我会把它添加到帖子中谢谢你有没有尝试过括号语法(
this[''id']
)?谢谢,没有,console.log(this[''id'])…@harmoniuscool如果需要,你可以使用条件渲染<代码>