Я пытаюсь ввести (с потоком) компоненты, которые я улучшаю с помощью Relay.createContainer
.
Я просмотрел типы, экспортированные пакетом "реакция-реле", но ReactContainer, похоже, не переносит реквизиты.
Я экспериментировал с RelayContainer
, ReactClass
, React$Component
и т.д.
в конце концов, самое близкое к ожидаемому результату, которое я мог бы получить, это:
// Foo.js
// @flow
import React from "react";
import Relay from "react-relay";
type Props = { title: string; }
const Foo({ title }: Props) => (<div>{title}</div>);
const exported: Class<React$Component<void, Props, void>> = Relay.createContainer(Foo, {
fragments: { ... }
});
export default exported;
-
// Bar.js
// @flow
import React from "react";
import Foo from "./Foo.js";
const Bar = () => <Foo />;
Теперь поток будет жаловаться на Foo.js
вокруг Опоры, что в баре не указан заголовок, какой я хочу (я бы хотел, чтобы он жаловался на Bar.js
, но он подробно).
Однако, если Bar был также RelayContainer
ссылкой на поток фрагмента Foo, он жаловался бы, что он не может найти getFragment
в свойствах Foo:
// Bar.js
// @flow
import React from "react";
import Relay from "react-relay";
import Foo from "./Foo.js";
const Bar = () => <Foo />;
export default Relay.createContainer(Bar, {
fragments: {
baz: () => Relay.QL`
fragment on Baz {
${Foo.getFragment("foo")}
}
`
}
}
В конце концов, я пытаюсь ввести вывод Relay.createContainer
, чтобы он переносил ввод оформленного компонента. Я просмотрел внутренние типы реле и увидел https://github.com/facebook/relay/blob/8567b2732d94d75f0eacdce4cc43c3606960a1d9/src/query/RelayFragmentReference.js#L211
, но я чувствую, что это не способ добавить свойства Relay.
Любая идея, как я могу достичь этого?