recherche

Maison  >  Questions et réponses  >  le corps du texte

"vuex-persistedstate pour basculer entre sessionStorage et localStorage"

<p>Si l'utilisateur coche la case "Se souvenir de moi", je souhaite passer de sessionStorage à localStorage, pendant que j'utilise vuex-persistedstate</p> <pre class="brush:php;toolbar:false;">exporter le magasin par défaut (fonction (/* { ssrContext } */) { const Store = créerStore({ État: { }, Actions: { setLodingMode({commettre}, nouveauMode) { commit("SET_LOADING_MODE", nouveauMode); }, réinitialiserStates({ commit }) { commit("AUTHENTICATION_RESET_STATE"); commit("login/RESET_STATE"); }, }, modules : { connexion, authentification }, plugins : [createPersistedState()], }); retour magasin ; });</pré> <p>Le fait est que je souhaite apporter des modifications comme celle-ci</p> <pre class="brush:php;toolbar:false;">état : { drapeau : faux }, plugins : [ createPersistedState({ stockage : indicateur ? window.localStorage : window.sessionStorage, }), ],≪/pré> <p>Je souhaite que l'indicateur change en fonction de la case à cocher "Se souvenir de moi" que l'utilisateur sélectionne lors de la connexion. Ainsi, lorsque l'utilisateur coche la case, l'indicateur devient vrai et toutes les données sont enregistrées dans localStorage</p> ;
P粉295728625P粉295728625483 Il y a quelques jours549

répondre à tous(1)je répondrai

  • P粉658954914

    P粉6589549142023-08-26 11:07:29

    Selon le commentaire de @Estus Flask, j'ai utilisé un stockage personnalisé et géré l'option "se souvenir de moi" en appelant directement localStorage et en définissant un indicateur dans localStorage.

    plugins: [
          createPersistedState({
            paths: ["authentication.userAuthenticationInfo"],
            storage: {
              getItem(key) {
                if (localStorage.getItem("rememberMe") == 1) {
                  return localStorage.getItem(key);
                } else {
                  return Cookies.get(key);
                  //return sessionStorage.getItem(key);
                }
              },
              setItem(key, value) {
                if (localStorage.getItem("rememberMe") == 1) {
                  localStorage.setItem(key, value);
                } else {
                  Cookies.set(key, value);
                  //sessionStorage.setItem(key, value);
                }
              },
              removeItem(key) {
                if (localStorage.getItem("rememberMe") == 1) {
                  localStorage.removeItem(key);
                } else {
                  Cookies.remove(key);
                  //sessionStorage.removeItem(key);
                }
              },
            },
          }),
        ],

    Et j'efface localStorage à chaque déconnexion ou réponse 401.

    répondre
    0
  • Annulerrépondre