我嘗試更改useSwr要使用的鉤子:
import { useMutation } from 'react-query';
const { data: user, mutate: mutateUser } = useMutation<User>('/api/user');
但我收到一條錯誤訊息:
沒有
mutationFn找到
無法解決這個問題。我嘗試像下面這樣在mutationFn里面添加useMutation&它可以作業,但它是靜態的:
const { data: user, mutate: mutateUser } = useMutation<User>('/api/user', {
mutationFn: () => {
const u: User = {
isLoggedIn: false,
avatarUrl: '',
login: '',
}
return Promise.resolve(u)
},
})
如果我使用動態請求,axios那么我需要將fetchJsonfrom掛login.tsx到mutationFn鉤子上嗎?
基本上,我想用&而不是react-query&無法找到解決方案?swrkyfetchJson
我很確定它真的很簡單,但無法讓它作業。
Stackblitz Demo → https://stackblitz.com/edit/next-iron-session-with-react-query?file=lib/useUser.ts(去/login路由,輸入 github 用戶名喜歡vvo& 點擊Login查看控制臺中的錯誤)
回購 → https://github.com/deadcoder0904/next-iron-session-with-react-query
uj5u.com熱心網友回復:
通過瀏覽檔案,似乎useMutationif 的第一個引數mutationFn而不是mutationKey
使用突變
如果代碼更改為:
const { data: user, mutate: mutateUser } = useMutation<User, unknown, { username: string }>((body) => {
return fetchJson('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(body),
})
}, {
mutationKey: '/api/user'
}
})
當你需要真正變異時
mutateUser({ username: 'Username' })
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/486254.html
上一篇:條件為真后將按鈕轉換為文本
