#react-router-dom
Вопрос:
Я реализую компонент Link в своем компоненте NominationPage следующим образом:
lt;Link target={'_blank'} to={{ pathname: `/nomination/${nomination.id}`, state: nomination, }} gt; {nomination.nominationName} lt;/Linkgt;
вот часть объекта местоположения console.dir(реквизит) в дочернем компоненте (страница именования):
location: hash: "" pathname: "/nomination/9031bc06-d896-4ddb-a707-bce8c32792dc" search: "" state: undefined
Вот маршрутизатор и коммутатор:
lt;Routergt; lt;React.StrictModegt; lt;Switchgt; lt;NominationsDataProvidergt; lt;SearchResultDataProvidergt; lt;Route exact path={'/login'} component={Login} /gt; lt;Route exact path={'/searchresults'} component={SearchResults} /gt; lt;Route exact path={'/searchhealthprovider/:id'} component={SearchHealthProvider} /gt; lt;Route exact path="/nomination/:id" component={NominationsPage} /gt; lt;Route exact path={['/', '/home']} component={Home} /gt; lt;Route exact path={'/email-verification/:token'} component={VerifyEmail} /gt; lt;/SearchResultDataProvidergt; lt;/NominationsDataProvidergt; lt;/Switchgt; lt;/React.StrictModegt; lt;/Routergt;,
Как состояние объекта местоположения может быть неопределенным, если идентификатор в URL-адресе определен и является свойством объекта (номинации), присвоенным свойству состояния объекта местоположения?
Я пробовал стратегии подключения к маршрутизатору и использованию, оба console.dir одинаковы.
Вот ссылки на исходный код для справки:
Компонент страницы номинации с реквизитами: https://github.com/the-difference-engine/ksf/blob/272-avoid-findallnominations-refactor/packages/app/src/components/pages/NominationPage/index.js#L37
Новый компонент номинации со ссылкой на компонент страницы номинации в jsx: https://github.com/the-difference-engine/ksf/blob/8b573b2f7de678aac560644db3f308e98ab64b80/packages/app/src/components/pages/Home/NewNomination.js#L36
Маршрутизатор: https://github.com/the-difference-engine/ksf/blob/8b573b2f7de678aac560644db3f308e98ab64b80/packages/app/src/index.js#L28
Спасибо за любую помощь 🙂
Ответ №1:
Я исправил эту проблему, удалив target={'_blank'}
ее из lt;Link /gt;
компонента. Создание новой вкладки сделало state
поле в location
объекте неопределенным.