本文介绍了如何在React中的Apollo客户端突变组件中包装GraphQL突变的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在将Apollo突变组件与查询组件包装在一起时遇到问题.如果您查看 updateCell 函数,则可以获取该行的oldValue,newValue和ID.如何使用Apollo客户端突变组件将值传递给ADDCOST突变.
I am having an issue wrapping the Apollo mutation component along with the query component. If you look at the updateCell function I am able to get the oldValue, newValue, and ID for the row.How can I pass the values to ADDCOST mutation using Apollo client mutation component.
下面是我的代码:
提前感谢您的提示.
const APPROVALCHAIN_QUERY = gql`
{
vApprovalChainApproverCountList{
applicationId
applicationName
collectionName
licenseType
cost
approvers
}
}
`;
const ADDCOST_MUTATION = gql`
mutation($cost: String!){
updateCost(cost: $cost){
applicationId
cost
}
}
`;
class ApprovalChain extends Component {
render() {
return (
<Query
query={APPROVALCHAIN_QUERY}
>
{({ loading, error, data }) => {
if (loading)
return <p>Loading...</p>;
if (error)
return <p>{error.message}</p>;
const chain = JSON.parse(JSON.stringify(data.vApprovalChainApproverCountList));
return (
<div>
<h1>ApprovalChain</h1>
<BootstrapTable
keyField="applicationId"
data={chain}
columns={columns}
cellEdit={cellEditFactory({
mode: 'click',
blurToSave: true,
Need Help ------------->>>**updateCell:** (oldValue, newValue, row) => {
console.log(row.applicationId, oldValue, newValue);
},
})}
/>
</div>
);
}}
</Query>
);
}
}
export default ApprovalChain;
推荐答案
将其与Mutation组件包装在一起应该可以.尝试这样的事情:
Wrapping it up with a Mutation component should work. Try something like this:
class ApprovalChain extends Component {
render() {
return (
<Query query={APPROVALCHAIN_QUERY}>
{({ loading, error, data }) => {
if (loading) return <p>Loading...</p>
if (error) return <p>{error.message}</p>
const chain = JSON.parse(
JSON.stringify(data.vApprovalChainApproverCountList)
)
return (
<div>
<h1>ApprovalChain</h1>
<Mutation mutation={ADDCOST_MUTATION}>
{addCost => (
<BootstrapTable
keyField="applicationId"
data={chain}
columns={columns}
cellEdit={cellEditFactory({
mode: 'click',
blurToSave: true,
updateCell: (oldValue, newValue, row) => {
console.log(row.applicationId, oldValue, newValue)
addCost({ variables: { cost: newValue } });
}
})}
/>
)}
</Mutation>
</div>
)
}}
</Query>
)
}
}
export default ApprovalChain
这篇关于如何在React中的Apollo客户端突变组件中包装GraphQL突变的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!