Rumah > Soal Jawab > teks badan
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 };
P粉3233748782024-01-30 00:40:23
Jika sesi diteruskan ke localStorage, seperti berikut
auth.session.listen(session => { window.localStorage.setItem('session', JSON.stringify(session)); ... })
Kemudian saya rasa anda boleh memulakan dari localStorage dalam getAuth
seperti di bawah
function getAuth({ host, fetch }: Dependencies) { const session = getEventEmitter({ initialValue: JSON.parse(window.localStorage.getItem("session")), }); ...
Jika tiada sesi kekal di negeri ini, borang null
是表达式的值,并以 initialValue
dikembalikan.