Bagaimana untuk memastikan keadaan tidak berubah selepas muat semula halaman?
P粉384244473
P粉384244473 2024-01-29 08:58:49
0
1
504

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粉384244473
P粉384244473

membalas semua(1)
P粉323374878

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan