Реакт-Роутер-Дом |URL меняется, но компонент не обновляется - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть список предметов в таблице в React.Когда я нажимаю на таблицу Link, URL обновляется, но компонент не отображается.Если я обновлю компонент, то там.

Я прочитал, что у некоторых React-router-dom версий есть некоторые проблемы, и здесь обсуждается множество решений:

https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/blocked-updates.md

Это для Beta версий.Я предполагаю, что мне нужно что-то сделать с функцией высшего порядка withRouter из react-router-dom, но у меня это не работает.Кроме того, withRouter был настроен глобально в приложении.

const AppHeader = withRouter(({ history, location, ...props }) => (
  <Header {...props} currentRoute={location.pathname} />
));

Дело в том, что мое приложение имеет несколько приложений.Один угловой и 2 реактивных.Нужно ли настраивать его для каждого приложения?Это родительский компонент с маршрутизатором для приложения, ссылки не работают.

import React from 'react';
import { Route, Switch, Redirect } from 'react-router-dom';
import { connect } from 'react-redux';

import 'react-tagsinput/react-tagsinput.css';

import PolicyRoutes from 'dataprotection/policies/containers/PolicyRoutes';

import './styles.scss';

const AppRouter = () => (
  <Switch>
    <Route exact path="/policies" component={PolicyRoutes} />
    <Redirect to="/policies" />
  </Switch>
);

AppRouter.propTypes = {};

function mapStateToProps() {
  return {};
}

export default connect(mapStateToProps)(AppRouter);

Я испробовал 2 решения.Во-первых, нужно обернуть мой компонент withRouter примерно так:

<Route exact path="/policies" component={withRouter(PolicyRoutes)} />

А во-вторых, обернуть withRouter, функцию соединения.Оба не работают.

Этот компонент не работает:

import React from 'react';
import { Route, Switch, Redirect } from 'react-router-dom';
import PropTypes from 'prop-types';

import OverviewScreen from '../OverviewScreen';
import PolicyDetailsScreen from '../PolicyDetailsScreen';

const PolicyRoutes = ({ match }) => (
  <Switch>
    <Route exact path={`${match.url}/details/:policyId`} component={PolicyDetailsScreen} />
    <Route exact path={match.url} component={OverviewScreen} />
    <Redirect to={match.url} />
  </Switch>
);

PolicyRoutes.propTypes = {
  match: PropTypes.object
};

export default PolicyRoutes;

Кто-нибудь может помочь?Я не знаю, в чем проблема ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...