我已经在我的django石墨烯GraphiQLendpoint上测试了这种突变,并通过Altair(graphql的邮递员)在我的apollo客户端所指向的完全相同的endpoint上进行了测试。我使用相同的格式运行相同的变异,它可以与GraphiQL和Altair一起工作-新的数据库条目。
通过react apollo,它不会产生错误,我的django控制台显示:[29/11/2017 01:51:08]“POST/graphql HTTP/1.1”200 75
然而,实际上没有什么击中数据库。我尝试了console.log查询,它打印了数据结构,但是它应该创建的对象只显示“null”。
我已经重建了两次,但没有用。这是牛郎星突变,如预期的那样工作:
mutation {
leadCreate(
newLead:{
firstName: "Bob",
lastName: "Dole",
email: "BobDole@graphql.com",
staff: "1"
}) {
lead {
id
}
}
}
它在Altair中返回结果:
STATUS: OK STATUS CODE: 200 TIME SPENT: 641ms
{
"data": {
"leadCreate": {
"lead": {
"id": "2773"
}
}
}
}
GraphiQL中的结果相同。
这是我的索引中的Apollo Link设置.js:
const httpLink = createHttpLink({
uri: 'http://localhost:8000/graphql',
});
const client = new ApolloClient({
link: httpLink,
cache: new InMemoryCache(),
});
ReactDOM.render(
<ApolloProvider client={client}>
<App />
</ApolloProvider>,
document.getElementById('root'),
);
registerServiceWorker();
我应该注意到我所有的查询都工作正常,所以我相当有信心以上都是正确的。
这是我的LeadQuickCreate.js组件:
import React, { Component } from 'react';
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';
import { Button, Input } from 'antd';
import { USER_ID } from '../../Utilities/constants';
class LeadQuickCreate extends Component {
state = {
firstName: '',
lastName: '',
phone: '',
email: '',
};
createLink = async () => {
const staff = localStorage.getItem(USER_ID);
const {
firstName, lastName, phone, email,
} = this.state;
const newLead = await this.props.createQuickLead({
variables: {
firstName,
lastName,
phone,
email,
staff,
},
});
console.log('NewLead = ', newLead);
};
render() {
const {
firstName, lastName, phone, email,
} = this.state;
return (
<div>
<div>
<Input
value={firstName}
onChange={e => this.setState({ firstName: e.target.value })}
type="text"
placeholder="Lead's First Name"
/>
<Input
value={lastName}
onChange={e => this.setState({ lastName: e.target.value })}
type="text"
placeholder="Lead's Last Name"
/>
<Input
value={phone}
onChange={e => this.setState({ phone: e.target.value })}
type="text"
placeholder="Lead's Phone Number"
/>
<Input
value={email}
onChange={e => this.setState({ email: e.target.value })}
type="text"
placeholder="Lead's email address"
/>
</div>
<Button type="primary" onClick={() => this.createLink()}>
Submit
</Button>
</div>
);
}
}
const CREATE_QUICK_LEAD = gql`
mutation CreateQuickLead(
$firstName: String!
$lastName: String
$phone: String
$email: String
$staff: ID!
) {
leadCreate(
newLead: {
firstName: $firstName
lastName: $lastName
phone: $phone
email: $email
staff: $staff
}
) {
lead {
id
}
}
}
`;
export default graphql(CREATE_QUICK_LEAD, { name: 'createQuickLead' })(LeadQuickCreate);
当我单击“提交”按钮时,控制台日志会打印以下内容:
{data: {…}}
data:
leadCreate:
lead: null
__typename: "LeadSerializerMutation"
等等。
所以我被卡住了。你知道它在哪里迷路了吗?
非常感谢。
编辑:Egads!当按照建议发送“正确格式”表单后仔细查看响应时,我意识到“staff”常量是作为字符串提交的。不知道为什么我的后端没有抛出一个可见的错误,但在提交之前快速“parseInt(staff )”,它的工作!
最后注意到<code>ID 以字符串形式发送,石墨烯endpoint正在查找整数。只需将我的突变呼叫更改为这个即可:
createLead = async values => {
const { firstName, lastName, phone, email, } = values;
let staff = localStorage.getItem(USER_ID);
staff = parseInt(staff);
const newLead = await this.props.createQuickLead({
variables: {
firstName,
lastName,
phone,
email,
staff,
},
});
我已经用React Apollo设置了一个React应用程序,可以成功地查询我的API。 但是,当我进行突变时,会出现奇怪的效果。我成功地取回了所有数据(如Chrome开发工具的网络选项卡中所示),但是当尝试数据时,它说它是。 以下是相关代码: 因此,当我调用函数时,我在控制台中收到以下内容: 但是在网络选项卡中查看时,我看到数据毕竟确实存在,并且正是我正在寻找的。此外,我的数据库已正确更新所有预
Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 一、背景介绍 服务端基于 Spring Boot 和 Spring Cloud 开发,打包后可以直接运行,不需要额外安装 Tomcat 等应用容器。 Java 客户端不依赖任何框架,能
我正在将我的应用程序配置为使用apache shiro安全性,但是,我在日志输出中不断收到以下内容: 我的. ini文件目前如下所示: my web.xml中的相关片段如下: 我在tomcat 7容器上使用阿帕奇·希罗1.2,奇怪的是没有这么多问题来解决这个问题,我忽略了什么?
我使用 Visual Studio AWS 扩展是为了使用 Docker 映像模板创建简单的 aws lambda 函数。Docker 映像已生成、标记并最终推送到容器注册表。从那里,我使用容器映像创建一个新的 lambda 函数。但是当我测试它时(在本地使用dotnet lambda调用函数或使用AWS控制台上的测试工具),我得到了 亚马逊Lambda工具。NET核心应用程序(5.3.0)项目主
有人能解释一下,当我尝试使用返回错误的突变时,为什么我的react应用程序apollo会这样做? GraphQL突变返回此信息(响应代码为200):<代码>{“错误”:[{“错误”:{“结果”:“身份。未找到”,“错误”:“身份验证失败”,“状态代码”:401}}}],“数据”:{“登录”:null}} 我的突变是这样的: 打电话: 它会像预期的那样运行一段时间(呈现我自己的自定义错误组件-<代码
简介 阿波罗 STM32F429 是正点原子推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 180Mhz,该开发板具有丰富的板载资源,可以充分发挥 STM32F429 的芯片性能。 开发板外观如下图所示: 该开发板常用 板载资源 如下: MCU:STM32F429IGT6,主频 180MHz,1024KB FLASH ,256KB RAM 外部 RAM:W9825G6KH(S