2017-10-05 4 views
0

J'utilise DVA JS Framework (https://github.com/dvajs/dva) dans un projet React.
J'ai une connexion/déconnexion fonctionnalité dans cette application web.React DVA JS Framework: Réinitialiser toute l'application d'état

Le problème:
Quand je LOGOUT l'état reste le même. J'ai besoin de réinitialiser l'état entier sans actualiser la page.

Existe-t-il un moyen de le faire dans DVA Framework?

Dans la documentation DVA (https://github.com/dvajs/dva/blob/master/docs/API.md), il existe plusieurs façons d'accéder à différentes choses dans l'application.

const app = dva({ 
    initialState, 
    onAction, 
    onStateChange, 
    onReducer, 
    onEffect, 
}); 

Existe-t-il un moyen de réinitialiser l'état dans ces configurations?

Répondre

1

Comment vous déconnectez-vous? En utilisant dva vous devez utiliser le modèle pour faire cela, afin de déclencher une saga "d'effet". Vous pouvez ensuite déclencher un changement d'état pour réinitialiser les valeurs dont vous avez besoin. Par exemple:

... 
effects { 
    *logout({ payload }, { call, put }) { 
    const confirmation = yield call(logout, {}); 
    if (confirmation.success) { 
     yield put({ type: 'resetToDefaults' }); 
    } else { 
     throw (confirmation); 
    } 
    }, 
}, 
reducers { 
    resetToDefaults(state) { 
    return { 
     ...state, 
     //Modify your required entries to the default values 
    }; 
    }, 
} 
0

J'utilise 2 le premier état est mon état actuel, et le second est defaultState qui exécutera quand je l'appelle ResetToDefaults.