Wenn ich redux und den Apollo-Client in meiner App verwende, ist dies der beste Weg, eine Abfrage von einer Aktion außerhalb einer Komponente auszulösen.So rufen Sie eine Apollo-Client-Abfrage von einer Redux-Aktion auf
Zum Beispiel, wenn ich eine Standard-App habe, mit Redux und Apollo Client konfiguriert, wie sollte ich eine "Refresh" -Liste auslösen. Ich kann eine Funktion auf der Komponente selbst auslösen, die die gql hat, aber wie würde ich es aus einer Aktion machen, die mehr im Fluss wäre.
import React, { Component, PropTypes } from 'react';
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';
import { connect } from 'react-redux';
import { refreshProfile } from './actions';
class Profile extends Component { ... }
Profile.propTypes = {
data: PropTypes.shape({
loading: PropTypes.bool.isRequired,
user: PropTypes.object,
}).isRequired,
};
const UserQuery = gql`
query getUser {
user {
id
name
}
}
`;
const ProfileWithData = graphql(UserQuery)(Profile);
const ProfileWithDataAndState = connect(
(state) => ({ user: state.user })),
)(ProfileWithData);
Und sagen, ich möchte eine Aktion auslösen, um diese Benutzerdaten zu aktualisieren? Da die Logik in der Komponente selbst ist, bin ich mir nicht sicher, wie ich diese gql-Abfrage von der Aktion selbst auslösen würde.
Haben Sie einen Weg gefunden, dies zu tun? –
yeah Sie können den apollo Klienten direkt wie in meinem Beispielcode in der Antwort gerade benutzen. – MonkeyBonkey
Und von anderen Komponenten? 'mitApollo'? –