问题描述
我正在从 relay 10
迁移到 relay 11
,并且在从 refetch
调用 useRefetchableFragment
时遇到奇怪的错误。
这是我的组件:
const EditClient: FC<Props> = ({ clientRef }) => {
const [refetchData,refetch] = useRefetchableFragment<EditClientContactsRefetchQuery,any>(
graphql`
fragment EditClient_refetch_client on Client
@refetchable(queryName: "EditClientContactsRefetchQuery") {
contacts {
...ContactList_contact
}
}
`,clientRef
);
return (
<>
<ContactList contact={refetchData.contacts} />
<button onClick={() => refetch({},{ fetchPolicy: 'network-only' })>
refetch
</button>
</>
);
}
然后我点击按钮,它重新获取graphql查询但也抛出一个错误:
react_devtools_backend.js:2430 警告:中继:在 refetch
中的片段 EditClient_refetch_client
上以高于预期的优先级意外调用 useRefetchableFragment()
。看起来您尝试在高优先级更新下调用 refetch
,但可能导致组件挂起的更新应按正常优先级安排。确保您从 refetch
挂钩调用 startTransition()
内的 useSuspenseTransition()
。
什么是 high priority update
以及如何将 onClick
事件放入 normal priority
?
中继文档没有说明如何调用 refetch
函数。
如果我将 refetch
调用放入 setTimeout
回调中,我不会出错,但感觉不对。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)