noWait(state)
一个选择器助手,它将返回一个 Loadable
用于提供的 atom
或 selector
的当前状态。
function noWait<T>(state: RecoilValue<T>): RecoilValueReadOnly<Loadable<T>>
这个助手可以用来获取潜在异步依赖项的当前状态,而不会在出现错误或依赖项仍处于挂起状态时抛出错误。它类似于 useRecoilValueLoadable()
,不同之处在于它是一个选择器而不是一个钩子。因为 noWait()
返回一个选择器,所以它反过来也可以被其他 Recoil 选择器以及钩子使用。
示例
const myQuery = selector({
key: 'MyQuery',
get: ({get}) => {
const loadable = get(noWait(dbQuerySelector));
return {
hasValue: {data: loadable.contents},
hasError: {error: loadable.contents},
loading: {data: 'placeholder while loading'},
}[loadable.state];
}
})