noWait(狀態)
一個選取器輔助工具,會傳回所提供的 atom
或 selector
的目前狀態的 Loadable
。
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];
}
})