當年話下
2022-12-02 16:54:56
我有一個簡單的 vue 實例,我想在其中使用空數(shù)組作為 data.vueFlashes。:const app = new Vue({ el: '#app', data: { vueFlashes: [] }});組件定義如下:<template> <transition name="fade"> <div id="flash-component" v-show="visible"> <span class="hide" @click="hide()">X</span> {{message.message}} </div> </transition></template><script> export default { mounted: function() { console.log('VUE component mounted.') }, created: function() { this.show(); }, props: [ 'message' ], data: function() { return { visible: true } }, methods: { show: function() { this.visible = true; setTimeout(() => this.hide(), 5000); }, hide: function() { this.visible = false; } } }</script>然后我想通過這種方式從外部填充 vueFlashes:// This is Laravel blade template<script>...@foreach (session('flash_notification', collect())->toArray() as $message) app.vueFlashes.push( {!! json_encode($message) !!} ); // Error@endforeach... 但它拋出一個錯誤:無法讀取未定義的屬性“推送” 如果我使用臨時 js 數(shù)組然后將其分配給 app.vueFlashes 它可以工作:<script>...let jsFlashes = [];@foreach (session('flash_notification', collect())->toArray() as $message) // jsFlashes.push( {!! json_encode($message) !!} );@endforeachapp.vueFlashes = jsFlashes; // This works fine這兩種調(diào)用相同 app.vueFlashes 值的方法有什么區(qū)別?
1 回答

絕地無雙
TA貢獻1946條經(jīng)驗 獲得超4個贊
<ul id='app'>
<li v-for='flashMessage in flashMessages'>
{{flashMessage}}
</li>
</ul>
.
const app = new Vue({
el: '#app',
data() {
return {
flashMessages: [
"Hellow. Something is wrong!",
"Another message",
],
};
},
});
app.flashMessages.push("A message from Push");
這是一個最小可行的例子:https ://jsfiddle.net/sheriffderek/fyb0j5rt/
你需要縮小范圍。
它告訴你這app.vueFlashes是未定義的。這可能是因為它在不同的范圍內(nèi)的某個地方……或者某事/但錯誤是真實的——所以,聽一下——并找出為什么它沒有在你使用它的地方定義。
添加回答
舉報
0/150
提交
取消