Reactjs 是否有其他方法将变量传递到;“儿童”;阿波罗的道具?

Reactjs 是否有其他方法将变量传递到;“儿童”;阿波罗的道具?,reactjs,graphql,react-hooks,react-apollo,apollo-client,Reactjs,Graphql,React Hooks,React Apollo,Apollo Client,想知道是否有方法将附加数据传递到UI触发变异的函数中。请参见下面的示例 <Mutation mutation={COMPLETE_EVALUATION} variables={{studentId:courses.course.studentId, courseId: courses.course.courseId, passed:true, checkpoints:courses.evals}}>

想知道是否有方法将附加数据传递到UI触发变异的函数中。请参见下面的示例

        <Mutation 
            mutation={COMPLETE_EVALUATION}
            variables={{studentId:courses.course.studentId, courseId: courses.course.courseId, passed:true, checkpoints:courses.evals}}>
             {(completeEval, {error, loading}) => (
                <div className="competency-actions ml-32 mr-64">
                    <Button className="w-128 mr-16 pass-button" variant="contained" onClick={() => completeEval(true)}>
                        PASS
                    </Button>
                    <Button className="w-128 ml-16 fail-button" variant="contained" onClick={() => completeEval(false)}>
                        REMEDIATE
                    </Button>
                </div>
            )} 
        </Mutation>

{(completeEval,{error,loading})=>(
CompleteVal(真)}>
通过
CompleteVal(假)}>
补救
)} 

我想根据点击的按钮提供更多关于突变的信息。我走的是正确的道路,还是有其他方法可以完成该值的设置?

传递到
Mutation
组件的渲染道具函数的第一个参数是
mutate
函数。此函数可以在没有其他参数的情况下调用,但也可以接受options对象。此选项对象可以具有以下属性:

  • 变量
  • optimisticResponse
  • refetchQueries
  • 更新
这些选项与可直接传递到
组件的道具相同。事实上,如果通过
mutate
函数提供选项,则如果还提供了相应的
Mutation
组件属性,则该选项将覆盖该组件属性

这意味着您可以省略组件中的
变量
属性,而在调用
mutate
函数时传入变量:

completeEval({
  variables: {
    studentId:courses.course.studentId,
    courseId: courses.course.courseId,
    checkpoints:courses.evals,
    passed: true,
  }
})

有关更多信息,请参阅。

太酷了,谢谢你,丹尼尔!我更新了我的变异以删除变量prop并将其与函数一起传递。以后我会尝试对文档进行更深入的挖掘,有时很难找到我想要的内容:)