Как вы уже указали, variables
может быть передано непосредственно в функцию mutate
вместо передачи их компоненту Mutation
.Что касается react-adopt
, то, согласно документам:
[Y] вы можете передать функцию вместо элемента jsx вашему преобразователю.Эта функция получит реквизит рендера, который будет отвечать за ваш рендер, реквизиты, переданные компоненту Composed, и предыдущие значения от каждого преобразователя.
Так что я ожидаю, что что-то подобное должно работать:
const Composed = adopt({
mutation: ({ render }) => (
<Mutation mutation={LOGIN_MUTATION}>
{(login, { loading, data, error }) => render({ login, loading, data, error })}
</Mutation>
),
formik: ({ mutation: { login }, render }) => ( // **EDIT**
<Formik onSubmit={values => login({ variables: values })}>
{render}
</Formik>
)
})
const App = () => (
<Composed>
{({ mutation: { login, data, loading, error }, formik: { values, handleSubmit } }) => (
// ...
)}
</Composed>
)