У меня есть проблема на базаре, возникающая с моим проектом, связанным с событиями Signalr и jQuery. Для начала, мой клиент -проект построен с Vue 3 (W/Composition API), Pinia, Signalr с jQuery и TypeScript. Это происходит из файла signalrstore.ts < /code>.
Однако, если я запускаю Dev Server и вручную обновляю страницу, ошибка уходит, и SignalR начинает работать. Если я запускаю его из NPM Run uder , обновление не исправляет его, и ошибка сохраняется. Я не уверен, является ли это проблемой заказа инициализации, или проблема с государством Pinia, или справочная проблема JQUERY и т. Д. Я знаю, что $ не определено Сообщение связано со ссылкой на jQuery, но я решил, что это была справочная проблема, ошибка, независимо от того, какой вид сервера или нет обновления или нет. Магазин действий. Я не уверен, является ли это правильным способом сделать это, но это имеет смысл для меня.
MyTitle
signalrstore.ts>// SignalRStore.ts
import { defineStore } from 'pinia'
// eslint-disable-next-line @typescript-eslint/no-explicit-any
declare const $: any
export const useSignalRStore = defineStore('SignalRStore', {
state: () => {
return {
isConnected: false,
}
},
actions: {
async setConnected(value: boolean) {
this.isConnected = value
},
async startSignalR() {
const signalRConnection = $.hubConnection({ ** backend url **})
signalRConnection.reconnecting(() => {
this.isConnected = false
console.log('SignalR Reconnecting...')
})
signalRConnection.reconnected(() => {
this.isConnected = true
console.log('SignalR Reconnected')
})
signalRConnection.disconnected(() => {
console.log('SignalR Disconnect: ' + $.hubConnection.lastError)
this.isConnected = false
})
signalRConnection.stateChanged((state: object) => {
console.log('state changed: ' + JSON.stringify(state))
this.isConnected = false
})
signalRConnection
.start({ withCredentials: false })
.done(() => {
this.isConnected = true
console.log('Now connected, connection ID=')
})
.fail(() => {
this.isConnected = false
console.log('Could not connect')
})
},
},
})
app.vue
// App.vue
import { onBeforeMount } from 'vue'
import { RouterView } from 'vue-router'
import { useSignalRStore } from './stores/SignalRStore'
const signalRStore = useSignalRStore()
signalRStore.startSignalR()
Подробнее здесь: https://stackoverflow.com/questions/795 ... resh-in-de
Vue Signalr с проектом jQuery - События Signalr работают только на ручном обновлении на Dev Server ⇐ Jquery
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение