如何在 MUI Popover 中使用 Link react-router?

lou*_*ros 6 reactjs react-router react-router-dom

我定义index.jsRouter来自 react router 5 的入口点(不是你不应该在 <Router> 之外使用 <Link>的副本):

ReactDOM.render(
    <Provider store={store}>
        <Router history={history}>
            <App />
        </Router>
    </Provider>,
    document.getElementById('app'),
);
Run Code Online (Sandbox Code Playgroud)

但我仍然有著名的You should not use <Link>outside a<Router> error on my component using Material UI Popover

const InterventionMarker = ({ marker, history }) => {

  const [anchorEl, setAnchorEl] = React.useState(null);
  const handleClick = event => setAnchorEl(event.currentTarget);
  const handleClose = () => setAnchorEl(null);
  const open = Boolean(anchorEl);

  return (
    <MarkerWithLabel
      onClick={handleClick}
      ...other-props
    >
      <div>
        {marker.label}
        <Popover
          id={marker.label}
          open={open}
          anchorEl={anchorEl}
          onClose={handleClose}
          anchorOrigin={{
            vertical: 'top',
            horizontal: 'center',
          }}
          transformOrigin={{
            vertical: 'bottom',
            horizontal: 'center',
          }}
        >
          {marker.interventions.map(i =>
            <Link history={history} component={RouterLink} to={`/interventions/${i.id}`}>
              {i.number} - {i.name}
            </Link>
          )}
        </Popover>
      </div>
    </MarkerWithLabel>
  );
};

export default withRouter(React.memo(InterventionMarker));
Run Code Online (Sandbox Code Playgroud)

我试图将historyprop(通过withRouterHOC)传递给Popover组件(想法来自Using react-router with react portals?)。

我试图向Router我的组件添加标签,但我并不喜欢这个选项,即使它似乎有效。

启用RouterLink内部Popover组件的任何其他想法?