我正在嘗試使用fetchEventSource(from @microsoft/fetch-event-source) 處理服務器發送事件以將資料流式傳輸到客戶端。它可以作業,因為資料被回傳并且我可以將它記錄到控制臺,但是當我嘗試在onmessage事件中更新我的 vue 資料時,我得到了錯誤:
TypeError: Cannot set properties of undefined (setting 'messages')
關于讓這個作業的最佳方式的任何想法?
基本測驗模板:
<template>
<div>
<p>
<label>Message</label><br />
<textarea id="messages" v-model="messages"></textarea><br />
<button @click="getMessage">GET</button>
</p>
</div>
</template>
和腳本:
import { fetchEventSource } from "@microsoft/fetch-event-source";
export default {
data() {
return {
messages: "",
};
},
mounted() {
this.messages = "initialized"; // this works
},
methods: {
getMessage() {
fetchEventSource("url-here", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
onmessage(msg) {
console.log("message", msg.data); // this works - data is here!
this.messages = msg.data; // this returns the error
},
});
},
},
};
uj5u.com熱心網友回復:
您可以嘗試使用箭頭功能或類似:
getMessage() {
const self = this
fetchEventSource("url-here", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
onmessage(msg) {
console.log("message", msg.data); // this works - data is here!
self.messages = msg.data; // this returns the error
},
});
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/421458.html
標籤:
