Ошибка: ошибка инварианта: вы не должны использовать вне

#reactjs #react-router-dom

#reactjs #реагировать-router-dom

Вопрос:

Ошибка: сбой инварианта: вы не должны использовать <withRouter(Connect(App)) /> вне

Вышеуказанная ошибка возникает, когда я оборачиваю свой компонент приложения с помощью withRouter . Эта ошибка возникает, когда я внес следующие изменения,

 import {BrowserRouter,Switch,Route,withRouter} from 'react-router-dom';

export default withRouter (connect(null,mapDispatchToProps)(App));
  

есть какие-либо решения?

Ответ №1:

Вы можете сделать это в отдельных строках

 const ReduxApp = connect(null,mapDispatchToProps)(App)
export default withRouter(ReduxApp)
  

Вам не понадобится withRouter , если вы передадите реквизиты в Routes

  <Route path="/" component={(p) => <Component {...p} {...props}/>} />
  

Вот p реквизиты, связанные с маршрутизатором react, и props это состояние redux

Ответ №2:

Можете ли вы попробовать это

 import {BrowserRouter,Switch,Route,withRouter} from 'react-router-dom';

export default connect(null,mapDispatchToProps)(withRouter(App)));