Cómo gestionar la autenticación de Firebase con Redux Toolkit utilizando correo electrónico, contraseña y Google
import { createSlice } from '@reduxjs/toolkit'
const initialState = {
userName: null,
userEmail: null
}
const userSlice = createSlice({
name: 'user',
initialState,
reducers: {
setActiveUser: (state, action) => {
state.userName = action.payload.userName
state.userEmail = action.payload.userEmail
},
setUserLogOut: (state) => {
state.userName = null
state.userEmail = null
}
}
});
export const { setActiveUser, setUserLogOut } = userSlice.actions
export const selectUserName = state => state.user.userName
export const selectUserEmail = state => state.user.userEmail
export default userSlice.reducer
import { createSlice } from '@reduxjs/toolkit'
const initialState = {
userName: null,
userEmail: null
}
const userSlice = createSlice({
name: 'user',
initialState,
reducers: {
setActiveUser: (state, action) => {
state.userName = action.payload.userName
state.userEmail = action.payload.userEmail
},
setUserLogOut: (state) => {
state.userName = null
state.userEmail = null
}
}
});
export const { setActiveUser, setUserLogOut } = userSlice.actions
export const selectUserName = state => state.user.userName
export const selectUserEmail = state => state.user.userEmail
export default userSlice.reducer
davy.ai
¿Cuál es el propósito de este código?
Este código define una porción de usuario para Redux utilizando la función
createSlice
de@reduxjs/toolkit
. El estado inicial de la porción de usuario incluyeuserName
yuserEmail
, ambos establecidos comonull
. La porción define dos reducers,setActiveUser
ysetUserLogOut
, que actualizan los camposuserName
yuserEmail
en el estado respectivamente. Las funcionesselectUserName
yselectUserEmail
son funciones selectoras que obtienen los camposuserName
yuserEmail
del estado, respectivamente. Finalmente, la porción de usuario se exporta como la función reductora predeterminada.