cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memastikan keadaan tidak berubah selepas muat semula halaman?

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粉384244473P粉384244473305 hari yang lalu497

membalas semua(1)saya akan balas

  • P粉323374878

    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.

    balas
    0
  • Batalbalas