Hai semua, saya cuba mencari cara untuk mengekalkan nilai status saya selepas muat semula halaman. Pada masa ini saya sedang menyimpan nilai dalam storan tempatan dan saya telah mencuba banyak penyelesaian untuk memastikan pengguna log masuk selepas muat semula halaman masih tidak berfungsi. Saya berhenti daripada ini setiap kali apabila saya memuat semula halaman, sebarang bantuan akan sangat dihargai. Terima kasih banyak-banyak.
Teras.ts:
class Core { agv: typeof agv; auth: Auth; workflow: WorkflowApi; graphql: GraphQLSdk; fleetState: Stream<FleetState>; taskList: Stream<TaskList>; zoneList: Stream<ZoneList>; configuration = getConfiguration(); url: string; constructor(options: Options) { const auth = getAuth(options); const graphqlUrl = `${options.host}/graphql`; const graphql = getSdk(new GraphQLClient(graphqlUrl, { fetch: authMiddleware({ auth, fetch: options.fetch }) })); const streamContext = { ...options, headers: getAuthHeaders(auth), getSites: () => auth.session.value?.sites || [], }; this.auth = auth; this.workflow = getWorkflowApi({ auth }) ; this.graphql = graphql; this.fleetState = fleetState.call({ ...options, headers: getAuthHeaders(auth), getSites: () => auth.session.value?.sites || [], }); this.configuration.map.fetch = this.configuration.map.fetch.bind(async () => { const site = auth.session.value.sites[0]; return graphql.map({ site }).then(({ map }) => map); }); this.taskList = taskList.call(streamContext); this.zoneList = zoneList.call(streamContext); this.agv = { ...agv, graphql, map: this.configuration.map, getSites: () => auth.session.value?.sites || [], } as typeof agv; auth.session.listen(session => { window.localStorage.setItem('session', JSON.stringify(session)); console.log(session); if (session) { this.configuration.map.fetch(); } }); } } export { Core };
Jika sesi diteruskan ke localStorage, seperti berikut
Kemudian saya rasa anda boleh memulakan dari localStorage dalam
getAuth
seperti di bawahJika tiada sesi kekal di negeri ini, borang
null
是表达式的值,并以initialValue
dikembalikan.