[英]i need to access user info which are initially store in redux store when logged in.. How can i do that? React-redux
authReducer.js authReducer.js
import {
LOGIN_SUCCESS,
LOGIN_FAIL,
REGISTER_SUCCESS,
REGISTER_FAIL
} from '../Actions/types';
export default (state = { isLoading: true, user: [] }, action) => {
switch(action.type){
case LOGIN_SUCCESS:
localStorage.setItem('token',action.payload.token);
return {
...state,
user: action.payload.data,
}
case LOGIN_FAIL:
return state;
case REGISTER_SUCCESS:
return {
...state,
user: action.payload.data,
}
case REGISTER_FAIL:
return state;
default:
return state;
}
}
profile.js配置文件.js
import React from 'react'
import { useSelector} from 'react-redux'
export const EditProfile = () => {
const data = useSelector((state) => state.user);
return (
<div>
{data}
</div>
)
}
index.js (rootReducer) index.js (rootReducer)
import { combineReducers } from 'redux';
import authReducer from './authReducer';
export default combineReducers({
auth: authReducer,
})
store.js商店.js
import {createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './Reducers';
const initialState = {};
const middleware = [thunk];
const store = createStore(rootReducer,initialState,compose(
applyMiddleware(...middleware),
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
));
export default store;
So Here when i logged in the details were on user object so i need to access then in profile.js so that i can display the details of the user I don't how can i access i need to save the user data which are stored in user (redux store).所以在这里,当我登录时,详细信息位于用户对象上,因此我需要在 profile.js 中访问然后才能显示用户的详细信息 我不知道如何访问我需要保存存储的用户数据在用户(redux 存储)中。 I don't know what i am missing any help will be grateful
我不知道我错过了什么任何帮助将不胜感激
I don't know how you setup your redux.我不知道你是如何设置你的redux的。
This is how I usually set them up:-这就是我通常设置它们的方式:-
/slices/auth.js
import { createSlice } from '@reduxjs/toolkit'
const initialState = {
user: [],
isLoading: false
}
export const authSlice = createSlice({
name: 'auth',
initialState,
// // The `reducers` field lets us define reducers and generate associated actions
reducers: {
setUser: (state, action) => {
// Redux Toolkit allows us to write "mutating" logic in reducers. It
// doesn't actually mutate the state because it uses the Immer library,
// which detects changes to a "draft state" and produces a brand new
// immutable state based off those changes
state.user = action.payload
},
setLoading: (state, action) => {
state.loading = action.payload
}
}
})
export const { setUser, setLoading } = authSlice.actions;
// The function below is called a selector and allows us to select a value from
// the state. Selectors can also be defined inline where they're used instead of
// in the slice file. For example: `useSelector((state: RootState) => state.counter.value)`
export const selectUser = (state) => state.auth.user
export const selectLoading = (state) => state.auth.isLoading
export default authSlice.reducer;
store.js
import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit'
import authReducer from '../slices/auth'
export const store = configureStore({
reducer: {
auth: authReducer
},
middleware: getDefaultMiddleware({
serializableCheck: false
})
})
import { Provider } from 'react-redux'
import { store } from '../app/store'
export default function App() {
return {
<>
<Provider store={store}>
{/* your content... */}
</Provider>
</>
}
}
import { useContext } from 'react'
import { useDispatch, useSelector } from 'react-redux'
import { selectUser } from '../slices/auth'
export default function EditProfile() {
const dispatch = useDispatch()
const user = useSelector(selectUser)
return {
<>
{user}
</>
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.