私のアプリでreduxとapolloクライアントを使用している場合、コンポーネント外のアクションからクエリをトリガする最適な方法は何ですか?reduxアクションからapolloクライアントクエリを呼び出す方法
例えば、reduxとapolloクライアントが設定された標準のアプリケーションを使用している場合、「リフレッシュ」リストをどのようにトリガーする必要がありますか?私はgqlを持つコンポーネント自体に関数をトリガーすることができますが、フラックスに沿ったより多くのアクションからどのようにすればよいでしょうか。
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);
また、そのユーザーデータを更新する操作をトリガーしたいとしますか?ロジックはコンポーネント自体にあるので、アクション自体からどのようにgqlクエリをトリガーするのかよく分かりません。
これを行う方法はありますか。 –
ええ、あなたはちょうど答えの私のサンプルコードのようにアポロクライアントを直接使用することができます。 – MonkeyBonkey
他のコンポーネントからですか? 'withApollo'? –