Я пытаюсь ввести (с помощью flowtype) компоненты, которые я улучшаю с помощью Relay.createContainer
.
Я изучил типы, экспортированные с помощью "react- relay ", но 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
вокруг Props, что Bar не предоставляет опору заголовка, что вроде того, что я хочу (я бы хотел, чтобы он пожаловался в 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
, чтобы он передавал набор декорированного компонента. Я изучил внутренние типы Relay и увидел https://github.com/facebook/relay/blob/8567b2732d94d75f0eacdce4cc43c3606960a1d9/src/query/RelayFragmentReference.js#L211
, но мне кажется, что это не способ добавлять в свойства Relay.
Есть идеи, как я могу этого добиться?