gpt4 book ai didi

reactjs - 你如何使用 react-apollo-hook 中的 useMutation 来执行删除突变?

转载 作者:行者123 更新时间:2023-12-04 00:26:35 24 4
gpt4 key购买 nike

我正在尝试使用 react-apollo-hook 中的 useMutation Hook 来执行删除突变,但我无法传递 ID 值在以下代码中发布到突变 Hook :

const Posts = () => {
const { data, error, loading } = useQuery(GET_POST)
const onDeleteHandler = useMutation(DELETE_POST, {
variables: { id }
})
if (loading) return <div>...loading</div>
if (error) return <div>Error</div>

return data.posts.map(({id, title, body, location, published, author}) => {
return (
<div className="card" key={id}>
<p>id: {id}</p>
<p>title: {title}</p>
<p>body: {body}</p>
<p>location: {location}</p>
<p>published: {published}</p>
<p>author: {author.name}</p>
<Link to={`/post/${id}/edit`}>
Edit
</Link>
<button
onClick={onDeleteHandler}>
Delete
</button>
</div>
)
})
}

我不能在 onClick() 属性中包含 useMutation,因为 Hook 不能用作回调函数。我尝试使用 const inputRef = useRef() 并传递 inputRef.current.value,但一直未定义。

最佳答案

来自 react-apollo-hooks docs :

You can provide any mutation options as an argument to the useMutation hook or to the function returned by it

所以你可以在调用useMutation时省略变量:

const onDeleteHandler = useMutation(DELETE_POST)

然后在调用处理程序时将它们传入:

onClick={() => onDeleteHandler({ variables: { id } })}>

注意:react-apollo-hooks 现已弃用,因为 react-apollo 现在支持 Hook 。 API 有点不同,因此用法如下所示:

const [onDeleteHandler, { data, loading, error }] = useMutation(DELETE_POST)

关于reactjs - 你如何使用 react-apollo-hook 中的 useMutation 来执行删除突变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56141456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com