Использование реактивных реакций apollo 2.1 с методами жизненного цикла реакции - PullRequest
0 голосов
/ 07 мая 2018

Интересно, как использовать новые Mutation компоненты с методами жизненного цикла реагирования.

Скажем, у меня есть страница, где я использую несколько мутаций реагирующих аполлонов. Я хочу выполнить другую мутацию при изменении состояния загрузки с true на false, чтобы отобразить всплывающее уведомление в углу страницы.

С компонентом более высокого порядка я бы сделал это в методе componentDidUpdate, но теперь с компонентом <Mutation /> я не могу этого сделать. Я что-то упустил?

1 Ответ

0 голосов
/ 14 мая 2018

Вы можете визуализировать ваш компонент в функции рендеринга и передать мутацию в реквизит:

import gql from "graphql-tag";
import { Mutation } from "react-apollo";

const ADD_TODO = gql`
  mutation addTodo($type: String!) {
    addTodo(type: $type) {
      id
      type
    }
  }
`;

const AddTodo = () => {
  return (
    <Mutation mutation={ADD_TODO}>
      {(addTodo, { data }) => 
        <YourComponent someFunction={addTodo} /> 
      }
    </Mutation>
  );
};

class YourComponent extends Component {
  componentDidMount(){
    this.props.someFunction({variables: {type: 'abc'}})
  }
  render(){
    return <div></div>
  }
}
...