Reactjs 发送更改url但不呈现组件的推送

Reactjs 发送更改url但不呈现组件的推送,reactjs,redux,react-router,connected-react-router,Reactjs,Redux,React Router,Connected React Router,因此,基本上我正在做一个登录的post请求,一旦成功,我想发送响应并将用户重定向到profile页面 因此,dispatch响应工作正常,但在执行dispatch(push('/profile'))之后URL更改,但配置文件组件未呈现 如果我只是在没有axios请求的情况下执行下面的代码,它就可以正常工作并重定向 export function logIn(values) { return (dispatch) => { dispatch({ type: LOGIN_USE

因此,基本上我正在做一个登录的post请求,一旦成功,我想发送响应并将用户重定向到profile页面

因此,dispatch响应工作正常,但在执行
dispatch(push('/profile'))之后URL更改,但配置文件组件未呈现

如果我只是在没有axios请求的情况下执行下面的代码,它就可以正常工作并重定向

export function logIn(values) {
   return (dispatch) => {
     dispatch({ type: LOGIN_USER, payload: {email: values.email} });
     dispatch(push('/profile'));
   };
 }
实际代码是我想做的。 在发送响应后,该响应工作正常,并且我的redux存储得到更新,但重定向不起作用。它将url更改为/profile,但视图不变

import axios from 'axios';
import { push } from 'connected-react-router';

const ROOT_URL = `${process.env.REACT_APP_SERVER_PATH}`;
export const LOGIN_USER = 'LOGIN_USER';

export function logIn(values) {
  const url = `${ROOT_URL}/login`;
  const request = axios({
    method: 'POST',
    url: url,
    data: values,
    headers: {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
  });
  return (dispatch) => {
    request.then((response) => {
      dispatch({ type: LOGIN_USER, payload: response.data.user });
      dispatch(push('/profile'));
    })
    request.catch((error) => {
      // do something
    })
  };
}
配置存储:

import { createBrowserHistory } from 'history';
import { createLogger } from 'redux-logger';
import { applyMiddleware, compose, createStore } from 'redux'
import { routerMiddleware } from 'connected-react-router'
import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/es/storage'
import thunk from 'redux-thunk'
import createRootReducer from './reducers'

export const history = createBrowserHistory();

const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const persistConfig = {
  key: 'root',
  storage: storage,
  whitelist: ['auth'] // can eention specific data root name

};

const reducers = persistReducer( persistConfig, createRootReducer(history));

export default () => {
  const store = createStore(
    reducers,
    composeEnhancers(applyMiddleware(routerMiddleware(history), thunk, createLogger()))
  );
  let persistor = persistStore(store)

  return  { store, persistor }
}

你好,尼克。您如何为此应用程序设置路由。你在使用react路由器dom吗?是的,我在使用react路由器。如前所述,如果我不执行ajax请求,那么它将完全正确地重定向。这就是为什么我对它很迷茫,它在响应承诺
请求之外工作得很好
在外部运行良好…但在内部,它只更改url,不更改组件hmm我认为这是连接路由器的一个可解决的错误。根据您上面提供的代码,我看不出有任何问题。但是,此链接提供了一些来自亲身经历过您的问题的人的解决方案。希望您能获得answ呃!你使用过redux thunk这样的中间件吗?请检查一下,你好,Nick。你是如何为这个应用程序设置路由的。你使用的是react router dom吗?是的,我使用的是react router。正如前面提到的,如果我不做ajax请求,那么它重定向就非常好。这就是为什么我对它非常迷茫的原因。它在响应承诺之外工作得很好
请求。然后((响应)=>{}
在外部运行良好…但在内部,它只更改url,不更改组件hmm我认为这是连接路由器的一个可解决的错误。根据您上面提供的代码,我看不出有任何问题。但是,此链接提供了一些来自亲身经历过您的问题的人的解决方案。希望您能获得answ呃!你使用过redux thunk这样的中间件吗?请检查一下