(Проблема) реакция-маршрутизатор занимает два-шесть раз для перенаправления на другие страницы
Вот ссылка, по которой я нажимаю.
<div className='drawer-item' onClick={this.drawerItemClicked}>
<BinaryLink to={link_to}>
<span className={icon || undefined}>{text}</span>
</BinaryLink>
</div>
Когдаэлемент (ссылка) щелкается, drawerItemClicked
срабатывает.
drawerItemClicked = (e) => {
this.props.hideDrawers();
if (this.props.collapseItems) {
this.props.collapseItems();
}
}
И в то же время BinaryLink
срабатывает
export const BinaryLink = ({ to, children, ...props }) => {
const path = normalizePath(to);
const route = getRouteInfo(path);
console.log('to');
console.log(to); <- triggers continuously
if (!route) {
throw new Error(`Route not found: ${to}`);
}
return (
to ?
<NavLink to={path} activeClassName='active' exact={route.exact} {...props}>
{children}
</NavLink>
:
<a href='javascript:;' {...props}>
{children}
</a>
);
};
Вот класс маршрутизатора
const routes = [
{ path: '/', component: TradeApp, exact: true },
{ path: '/statement', component: Statement, is_authenticated: true },
{ path: '/account', component: LostPassword, is_authenticated: false },
];
const RouteWithSubRoutes = route => (
<Route
exact={route.exact}
path={route.path}
render={props => (
(route.is_authenticated && !Client.isLoggedIn()) ? // TODO: update styling of the message below
<a href='javascript:;' onClick={redirectToLogin}>{localize('Please login to view this page.')}</a> :
<route.component {...props} routes={route.routes} />
)}
/>
);
export const BinaryRoutes = () => routes.map((route, idx) => (
<RouteWithSubRoutes key={idx} {...route} />
));
Что-то пошло не так.Но я не могу устранить неполадки.
Выходные данные из to
продолжают вызывать route.js, поскольку он отображает текущее время с сервера.Однако, даже если я удалю его, он не будет работать.
...
routes.js:48 undefined
rroutes.js:47 to
routes.js:48 undefined
routes.js:47 to
routes.js:48 undefined
routes.js:47 to
routes.js:48 undefined
routes.js:47 to
routes.js:48 undefined
routes.js:47 to
routes.js:48 undefined
routes.js:47 to
routes.js:48 undefined
Моя мысль Определенно что-то не так, где я определил <NavLink>