【问题标题】:Please how can I solve useMutation请问我该如何解决 useMutation
【发布时间】:2021-05-04 20:01:35
【问题描述】:

我想使用 react-query useMutation 将用户添加到数据库,但我在库中遇到此错误。请任何人都可以帮助我。这是我的代码。

TypeError:对象不是函数:

import { addStaff } from "./async";
function Navbar() {
  const inputRef = useRef();
 
  const [mutateAdd] = useMutation(addStaff, {
    onSuccess: () => console.log("User successfully added"),
  });

  const onAdd = () => {
    mutateAdd({ text: inputRef.current.value });
    inputRef.current.value = "";
  };

  return (
    <div style={{ display: "flex" }}>
      <div></div>
      <div style={{ display: "flex", marginLeft: 40 }}>
        <Input placeholder="start typing..." ref={inputRef} />
        <Button onClick={onAdd}>Invite Staff</Button>
      </div>
    </div>
  );
}```

【问题讨论】:

  • 你在用阿波罗吗?
  • 不,我正在使用 react-query。

标签: react-query


【解决方案1】:

从 v3 开始,useMutation 不返回数组而是返回对象。请参阅迁移指南:https://react-query.tanstack.com/guides/migrating-to-react-query-3#usemutation-now-returns-an-object-instead-of-an-array

所以你可能想要:

const { mutate } = useMutation(addStaff, {
    onSuccess: () => console.log("User successfully added"),
  });

【讨论】:

  • 谢谢。这真的解决了我的问题。我使用的是 mutateAdd 而不是 mutate。
猜你喜欢
  • 2021-10-23
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 2020-03-25
  • 2020-02-14
  • 2021-08-19
相关资源
最近更新 更多