Vuejs2 道具显示在模板中,但不显示在函数中
My\u id prop很好地显示在此子模板中,但console.log(this.\u id)在函数中没有显示任何内容,甚至没有“未定义”这是我的子模板: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
<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如果需要,你可以使用条件渲染<代码>