突变未运行的更新方法

时间:2017-07-28 10:04:56

标签: caching apollo react-apollo

我有以下组件可以改变数据。 Apollo提供自动更新商店的功能。我想使用update函数控制数据添加到商店的方式。文档很简单,但我不能让它工作。下面的代码有什么问题会阻止console.log打印。

import React from 'react'
import { connect } from 'react-redux';
import { graphql, gql, compose } from 'react-apollo';
import { personCodeSelector } from '../../selectors/auth';
import UploadBankStatement from '../../components/eftFileUploads/UploadBankStatement.jsx';

const createEftFileUpload = gql`mutation createEftFileUpload(
  $bankAccountCode: String!,
  $uploadInput: UploadInput!,
  $uploadedByPersonCode: String!) {
    createEftFileUpload(
      bankAccountCode: $bankAccountCode,
      uploadInput: $uploadInput,
      uploadedByPersonCode: $uploadedByPersonCode) {
          id
          bankAccountCode
          fileName
          numberOfProcessedItems
          numberOfUnallocatedItems
          createdAt
          status
        }
      }`;

const mutationConfig = {
  props: ({ ownProps, mutate }) => ({
    createEftFileUpload: (bankAccountCode, uploadInput) => {

      return mutate({
        variables: {
          bankAccountCode,
          uploadInput,
          uploadedByPersonCode: ownProps.personCode
        },
        update: (store, something) => {
          console.log("ping");
          console.log(store, something);
          },
      });
    }
  })
};

const mapStateToProps = state => {
  return {
    personCode: personCodeSelector(state)
  };
};

export default compose(
  connect(mapStateToProps),
  graphql(createEftFileUpload, mutationConfig)
)(UploadBankStatement);

注意我发现了几个类似的issues,但它似乎没有说明我的情况。

1 个答案:

答案 0 :(得分:0)

服务器重启修复了我的问题。不知道为什么热重装需要这个。代码是正确的。