Дополните реагирующий маршрутизатор модуль с типами реагирующий маршрутизатор-реле
Реактивный маршрутизатор по умолчанию используется как таковой:
import * as React from 'react';
import { Router, Route, hashHistory } from 'react-router';
const routing = (
<Router history={hashHistory}>
<Route path="/login" component={Login}/>
</Router>
};
Когда я включаю библиотеку "response-router-relay", она добавляет функциональность к маршрутизатору. А именно, он добавляет 2 свойства в компонент Router (рендер и окружение):
import * as React from 'react';
import * as Relay from 'react-relay';
import * as useRelay from 'react-router-relay';
import { Router, Route, hashHistory, applyRouterMiddleware } from 'react-router';
const routing = (
<Router history={hashHistory} render={applyRouterMiddleware(useRelay)} environment={Relay.Store}>
<Route path="/login" component={Login}/>
</Router>
};
Как бы я увеличил число ответов типа "маршрутизатор"?
Я перепробовал несколько подходов, последнее из которых:
import { Router } from 'react-router';
declare module 'react-router' {
namespace Router {
export interface RouterProps {
environment?: any
}
}
}
Так же мне нужно расширить пространство имен "Маршрутизатор" и интерфейс "RouteProps" под него.
Ссылка на React маршрутизатора набирает: https://www.npmjs.com/package/@types/react-router
Библиотека React-router-relay сама по себе не имеет никаких типов.
Вся информация, которую я нашел по этой теме:
- https://github.com/Microsoft/TypeScript/issues/11034
- https://github.com/typings/typings/issues/611
таким образом, проблема заключается в том, что реактивные типизации никогда не экспортируют пространства имен, поэтому становится невозможным их расширение
2 ответа
Попробуй это
declare module 'react-router' {
interface RouterProps {
environment?: any
render?: any
}
}
он работает с последними определениями реагирующих маршрутизаторов.
<Router history={hashHistory} render={applyRouterMiddleware(useRelay)} environment={Relay.Store}>
<Route path="/login" component={Login}/>
</Router>
Похоже, логин (компонент ={Логин}) не Imported.Hence, он всегда возвращает ошибку.