Я пытаюсь передать props / состояние от одного компонента другому компоненту через реагирующий маршрутизатор history.push()
и получаю ошибку машинописного текста, которую я не могу понять. Каждый раз, когда я изменяю тип Component2
на любой, кроме any
, я получаю сообщение об ошибке Property 'foo' does not exist on type 'Location<PoorMansUnknown>'.
Этот код работает , то есть мой компонент рендерится, когда я попадаю на маршрут и Я могу получить доступ к пропущенным реквизитам (если игнорирую ошибки типа). Вот что я (упрощенно):
// Component1.tsx
const Component1 = () => {
const prop1 = "foo";
const prop2 = "bar";
return (
<ClickableCustomComponent
onClick={() => history.push({
pathname:'/blah/blah/page-2',
prop1ToPass: foo,
prop2ToPass: bar,
})}
/>
)}
// Component2.tsx
import { withRouter } from 'react-router-dom';
// This page is set up to render when the path is '/blah/blah/page-2'
// I have "any" for the type just because I can't figure out what the type should be
const Component2 = ({ location }: any) => {
const { prop1ToPass, prop2ToPass } = location;
return (
<div>{prop1ToPass}</div>
<div>{prop2ToPass</div>
)
}
export default withRouter(Component2);
Какой тип должен использовать Component2?
Я пытался расширить RouteComponentProps
следующим образом ( только для получения той же PoorMansUnknown
ошибки типа):
interface Props extends RouteComponentProps {
foo: string;
bar: string;
}