在 Apollo React Mutation 组件中自定义变量
Posted
技术标签:
【中文标题】在 Apollo React Mutation 组件中自定义变量【英文标题】:Custom define variables inside Apollo React Mutation Component 【发布时间】:2019-03-17 12:32:30 【问题描述】:我的后端处理 AddLike 突变。这需要一个 UserId 和一个 CommentId 或 PitchId。看你喜欢哪个。我想在整个应用程序中重用我的 LikeButton 组件这样我需要在我的 Apollo React Mutation 中定义我的变量以获取 CommentId 或 PitchID。现在我似乎无法做任何事情。有什么建议? :-)
这是组件的代码。 API GrahQL 有效。所以没有什么可以改变的。
import * as React from 'react';
import Mutation from 'react-apollo';
import ADD_LIKE from '../../GraphQLStatements/GraphQLStatements';
interface ILikeButtonProps
currentUser : number;
type : any;
index: number;
const LikeButton: React.SFC<ILikeButtonProps> = (props) =>
let inputType : string = "pitchId"
const DefineType = () =>
if (props.type === "comment")
inputType = "commentId"
else
inputType = "pitchId"
return (
<Mutation mutation=ADD_LIKE>
(addLike) => (
<i className="far fa-thumbs-up icon like__button"
onClick=e =>
e.preventDefault();
e.stopPropagation();
DefineType()
addLike( variables : like :
"userId": props.currentUser,
inputType : props.index
).then ((res : any) =>
console.log(res.data.addLike.statusMessage)
);
>
</i>
)
</Mutation>
);
;
export default LikeButton;
现在这不起作用。提前致谢!
【问题讨论】:
【参考方案1】:在 inputType 周围添加方括号有效:
addLike( variables : like :
"userId": props.userId,
[inputType]: props.id
【讨论】:
以上是关于在 Apollo React Mutation 组件中自定义变量的主要内容,如果未能解决你的问题,请参考以下文章
在 Apollo React Mutation 组件中自定义变量
React Apollo GraphQL Mutation 返回 400(错误请求)
使用 Apollo Client 和 Apollo Server 的 React Native 应用程序的 Mutation 类型的未知参数“”on field“”
Reactjs/Apollo/AppSync Mutation 触发了两次
React Apollo Link - 如何在使用 <Query /> 和 <Mutation /> 组件之外向 GraphQL 服务器查询身份验证令牌?