У меня есть родительский компонент, который должен отображать другой компонент, когда URL соответствует определенному пути:
const View: React.SFC<Props> = ({
....
}) => {
return (
<div>
....
<Route path={jobPath} component={JobPanel} />} />
</div>
);
};
JobPanel.tsx
будет отображаться, если jobPath === /careers/:id
, что все работает.
JobPanel.tsx
имеет ссылку, которая в настоящее время будет возвращаться с this.props.history.push(/careers)
<BackLink
to="/company/careers"
onClick={(e: any) => { handleClose(); }}
>
<StyledChevron orientation={Orientation.Left} />
Go Back
</BackLink>
или
<BackLink
onClick={(e: any) => { this.props.history.push('/careers/); handleClose(); }}
>
<StyledChevron orientation={Orientation.Left} />
Go Back
</BackLink>
Проблема заключается в том, что JobPanel должен иметь переход в и изстраница с этим компонентом:
class JobPanel extends Component {
render() {
const { isOpen, handleClose, job } = this.props;
return (
<StyledFlyout
active={isOpen}
Где isOpen
- логическое значение в хранилище с избыточностью.
При рендеринге JobPanel
все работает, я считаю, react-router
вызывает повторную визуализацию страницы при изменении URL-адреса.Я не совсем уверен, как добиться повторного рендеринга.