Как использовать машинописные, реактивные и аполлонные компоненты? - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь правильно набрать компонент реагировать-принять, для этого у меня есть следующие интерфейсы:

interface LoginData {
  token: string;
}

interface LoginVars {
  email: string;
  password: string;
}

interface UserData {
  name: string;
  age: number;
}

interface UserVars {
  id: string;
}

, а вот мой Composed компонент, обратите внимание, что единственные хорошо типизированные вещи - этокомпоненты Reaction-Apollo, но я не знаю, как набрать adopt функцию реагирования-принятия:

const Composed = adopt({
  login: ({ render, variables }) => (
    <Mutation<LoginData, LoginVars>
      mutation={MUTATION_LOGIN}
      variables={variables}
    >
      {(mutation, result) => render({ mutation, result })}
    </Mutation>
  ),
  user: ({ render, variables }) => (
    <Query<UserData, UserVars> query={MUTATION_USER} variables={variables}>
      {render}
    </Query>
  )
});

И, наконец, у меня есть реализация, у которой вообще нет типов:

const Foo = () => {
  return (
    <Composed>
      {({ login, user }) => {
        // Both `login` and `user` are `any` type
      }}
    </Composed>
  )
}

Кто-нибудь знает, как правильно ввести функцию adopt?

...