Todo永远不会被添加。可视性过滤器工作&远程Coinbase获取工作。
这是我的回购
https://github.com/deadcoder0904/apollo-coinbase
&安培;这里是相同的代码沙箱
https://codesandbox.io/s/github/apollographql/apollo-link-state/tree/master/examples/todo
该示例与codeandbox类似,只有远程URI,用于从某些硬币的coinbase API获取
我复制了相同的例子
只需2次更改
第一个更改是我添加了一个HTTPLink,用于使用Coinbase API获取远程数据
第二个变化是我没有使用Apollo-Boost&明确导入其他所有内容
我不明白bcz代码字面上相似的区别(他们正在使用apollo-boost& i我已经使用了不同的单块并且放弃了)
addTodo变异在TodoForm.js中无效:)
import React from "react";
import gql from "graphql-tag";
import { Mutation } from "react-apollo";
const ADD_TODO = gql`
mutation addTodo($text: String!) {
addTodo(text: $text) @client {
id
}
}
`;
const TodoForm = () => (
<Mutation mutation={ADD_TODO}>
{addTodo => {
let input;
return (
<form
onSubmit={e => {
e.preventDefault();
if (!input.value.trim()) return;
addTodo({ variables: { text: input.value } });
input.value = "";
}}
>
<input
type="text"
ref={node => {
input = node;
}}
/>
<button type="submit">Add Todo</button>
</form>
);
}}
</Mutation>
);
export { TodoForm };
错误是 -
[网络错误]:TypeError: 对象( WEBPACK_IMPORTED_MODULE_0_graphql_tag [&#34; gql&#34;])不是 功能。 (在 &#39;对象(的 WEBPACK_IMPORTED_MODULE_0_graphql_tag [&#34; GQL&#34;])(_ templateObject)&#39 ;, &#39;对象(的 WEBPACK_IMPORTED_MODULE_0_graphql_tag [&#34; GQL&#34;])&#39;是一个 App.js上的Object实例:46
答案 0 :(得分:1)
它认为gql
不是函数(可能是未定义的)。应该很容易打印出来看看。如果你有一个糟糕的graphql-tag版本,我不会感到惊讶。将其设置为package.json
答案 1 :(得分:0)
找到解决方案。我想我必须习惯于正确阅读日志。
我在./resolvers/todos
档案中犯了一个小错误。在其他任何地方都很好
我实际上将gql导入为命名导出,如 -
import { gql } from 'graphql-tag';
当我应该使用默认导出时 -
import gql from 'graphql-tag';