React类组件和Apollo的使用

文章展示了如何在React组件中结合ApolloClient进行创建和更新操作。通过使用`Mutation`组件进行两次提交,首先创建会议数据,然后发送会议信息给用户。涉及到的GraphQL查询和突变包括创建会议、更新会议、获取员工、部门等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

React类组件需要使用Apollo做两次提交的使用方式: 

import React from 'react';
import { Col, Form, Input, Modal, Row, Spin, message, Checkbox, Radio, DatePicker, Button, Select, Switch } from 'antd';
import { FormComponentProps } from 'antd/es/form';
import { Query, Mutation } from 'react-apollo';
import moment from 'moment';
import { generateFormFields } from '@/utils/utils';
import Uploader from '@/components/Uploader';
import SelectAuto from '@/components/SecurityScope';
import {
  createMeeting as CREATE_MEETING,
  updateMeeting as UPDATE_MEETING,
  employees as QUERY_PERSON,
  departments as QUERY_DEPARTMENT,
  queryCheckInPeoples as QUERYCHECKINPEOPLES,
  dataDictionary as DATADICTIONARY,
  sendMeetingToUser as SENDMEETINGTOUSER,
} from './gqls/conferenceManage.gql';
import TreeSelectData from '../components/TreeSelectMeetingDataType';
import { connect } from 'dva';
const { Option } = Select;
const { RangePicker } = DatePicker;

export const ConferenceFormCreate = Form.create(formValue)((props: any) => {

  const submit = async (createMeetingRoom: any ,sendMeetingMessage: any,input: any) =>{
    let meetingData = await createMeetingRoom({
      variables: {
        input: {
          data: {
            ...input,
            creator: props.userId,
          },
        },
      },
    });
    console.log('xxxxxxxxxxxxxxx',meetingData)
    sendMeetingMessage({
      variables: {
        id: meetingData?.data?.createMeeting?.meeting?.id
      }
    });
  }

  return (
    <Mutation mutation={CREATE_MEETING}>
      {(createMeetingRoom: any, { loading }: any): any => (
        <Mutation mutation={SENDMEETINGTOUSER}>
        {(sendMeetingMessage: any, { loading }: any):any=>(
           <Spin spinning={loading}>
               <ConferenceForm {...props} submit={
                async (input:any)=> {
                  await submit(createMeetingRoom,sendMeetingMessage,input);
                }
               } />
           </Spin>
          )}
          </Mutation>
      )}
    </Mutation>
  );
});

.gql文件:

#签到负责人默认本支部所有支委
query queryCheckInPeoples ($organization: ID!, $filter: EmployeeFilter, $pageSize: Int = 10000) {
  employees(organization: $organization, filter:$filter, pageSize: $pageSize){
    edges{
      node{
        id
        name
      }
    }
  }
}

mutation sendMeetingToUser($id:ID!){
  sendMeetingToUser(id:$id)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值