属性 或方法未在实例上定义但在渲染期间被引用
Property or method is not defined on the instance but referenced during render
我正在研究 laravel + spark + vuejs。我正在尝试制作新模块,下面是代码。
routes/web.php
Route::get('/emergency-template-plan', 'EmergencyPlanTemplateController@emergencyTemplatePlan');
Vue js: resources/assets/js/app.js
require('spark-bootstrap');
require('./components/bootstrap');
Vue.component('spark-emergency', {
data() {
return {
all_emergencies:[]
};
},
created() {
this.getEmergencies();
},
methods: {
getEmergencies() {
this.$http.get('/emergency-template-plan')
.then(response => {
this.all_emergencies = response.data;
});
}
}
});
var app = new Vue({
mixins: [require('spark')]
});
控制器: app/Http/Controllers/EmergencyPlanTemplateController.php
public function emergencyTemplatePlan(){
$data = EmergencyPlanTemplate::all();
return view('spark::emergency-template-plan', ['emergencies'=>$data]);
}
查看:resources/views/vendor/spark/emergency-template-plan.blade.php
@extends('spark::layouts.app')
@section('content')
<spark-emergency :all_emergencies="all_emergencies" inline-template>
<tr v-for="emergency in all_emergencies">
<td>
<div class="btn-table-align">
@{{ emergency.type }}
</div>
</td>
</tr>
</spark-emergency>
@endsection
我收到以下错误
Vue warn]: 属性 或方法 "all_emergencies" 未在实例上定义,但在渲染期间被引用。确保在数据选项中声明反应数据属性(在根实例中找到)
这里的问题是您尝试使用 spark_emergency
组件的父组件中的 all_emergencies
。
你尝试通过 props 发送紧急情况 :all_emergencies="all_emergencies"
这基本上意味着你想从组件的父组件发送一些数据到子组件。
由于你在created
hook 中初始化组件本身this.$http...
内部的紧急情况,因此无需将其作为prop 发送。这应该使它工作。
<spark-emergency inline-template>
<tr v-for="emergency in all_emergencies">
<td>
<div class="btn-table-align">
@{{ emergency.type }}
</div>
</td>
</tr>
</spark-emergency>
我正在研究 laravel + spark + vuejs。我正在尝试制作新模块,下面是代码。
routes/web.php
Route::get('/emergency-template-plan', 'EmergencyPlanTemplateController@emergencyTemplatePlan');
Vue js: resources/assets/js/app.js
require('spark-bootstrap');
require('./components/bootstrap');
Vue.component('spark-emergency', {
data() {
return {
all_emergencies:[]
};
},
created() {
this.getEmergencies();
},
methods: {
getEmergencies() {
this.$http.get('/emergency-template-plan')
.then(response => {
this.all_emergencies = response.data;
});
}
}
});
var app = new Vue({
mixins: [require('spark')]
});
控制器: app/Http/Controllers/EmergencyPlanTemplateController.php
public function emergencyTemplatePlan(){
$data = EmergencyPlanTemplate::all();
return view('spark::emergency-template-plan', ['emergencies'=>$data]);
}
查看:resources/views/vendor/spark/emergency-template-plan.blade.php
@extends('spark::layouts.app')
@section('content')
<spark-emergency :all_emergencies="all_emergencies" inline-template>
<tr v-for="emergency in all_emergencies">
<td>
<div class="btn-table-align">
@{{ emergency.type }}
</div>
</td>
</tr>
</spark-emergency>
@endsection
我收到以下错误
Vue warn]: 属性 或方法 "all_emergencies" 未在实例上定义,但在渲染期间被引用。确保在数据选项中声明反应数据属性(在根实例中找到)
这里的问题是您尝试使用 spark_emergency
组件的父组件中的 all_emergencies
。
你尝试通过 props 发送紧急情况 :all_emergencies="all_emergencies"
这基本上意味着你想从组件的父组件发送一些数据到子组件。
由于你在created
hook 中初始化组件本身this.$http...
内部的紧急情况,因此无需将其作为prop 发送。这应该使它工作。
<spark-emergency inline-template>
<tr v-for="emergency in all_emergencies">
<td>
<div class="btn-table-align">
@{{ emergency.type }}
</div>
</td>
</tr>
</spark-emergency>