Я пытаюсь ввести (с потоком) компоненты, которые я улучшаю с помощью 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.
Любая идея, как я могу достичь этого?