Я новичок в реагировании с редуксом, когда я разрабатывал экспресс-приложение, в котором я выбираю реагирование в качестве своей концепции внешнего интерфейса и магазина редуксов. Мне нужно передать зарегистрированного пользователя как параметр в моем методе axios.get Как я могу это сделать?
Что я делал, так это получение user._id из базы данных и его использование, но этоподход утомителен и не будет работать для ряда пользователей
componentDidMount(){
const url="http://localhost:5000/api/users/viewFarm/5d3ac84a86688123789e13b2";
fetch (url,{
method: "GET"
}).then(response=> response.json()).then(result=>{
console.log(result);
this.setState({
farmList : result
});
});
}
Я вижу в Redux Dev Tool, SET_CURRENT_USER отображает вошедшего в систему пользователя, но есть ли другой способ, чтобы я мог передатьэтот user.id в методе axios.get при выполнении ComponentDidMount (). 1. У моей реакции-редукса есть авторизации
//Json Generator
export const registerJson = (userData, history) => dispatch => {
axios
.post("/api/users/registerJson/5d3ac84a86688123789e13b2/5d42d171e7ceef2a90245470/5d44256d8b3cf92af46e2c9b", userData)
.then(res => history.push("/JsonGenerator"))
.catch(err =>
dispatch({
type: GET_ERRORS,
payload: err.response.data
})
);
};
.
.
.
.
export const setCurrentUser = decoded => {
return {
type: SET_CURRENT_USER,
payload: decoded
};
};
Редукторы
import { SET_CURRENT_USER, USER_LOADING } from "../actions/types";
const isEmpty = require("is-empty");
const initialState = {
isAuthenticated: false,
user: {},
loading: false
};
export default function(state = initialState, action) {
switch (action.type) {
case SET_CURRENT_USER:
return {
...state,
isAuthenticated: !isEmpty(action.payload),
user: action.payload
};
case USER_LOADING:
return {
...state,
loading: true
};
default:
return state;
}
}
Магазин
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;
Redux dev tool o / p
{
auth:{
isAuthenticated:false=>true}
user:{
exp:1604591134,
iat:1573034208,
id:"5d36f73f67665a1740620f55",
name:"Pritam Kumar",
},
}
}