useWait

useWait 是一个 React 钩子,可以帮助管理页面上的多个加载状态而不会产生任何冲突。它基于一个通过管理多个加载状态 Array 的简单想法。内置的 Wait 组件监听其注册的加载器并立即进入加载状态。

用法

  1. import { useWait } from 'react-use'
  2. function UserCreateButton() {
  3. const { startWaiting, endWaiting, isWaiting, Wait } = useWait();
  4. return (
  5. <button
  6. onClick={() => startWaiting("creating user")}
  7. disabled={isWaiting("creating user")}
  8. >
  9. <Wait on="creating user" fallback={<div>Creating user!</div>}>
  10. Create User
  11. </Wait>
  12. </button>
  13. );
  14. }

你应该用 Waiter 组件包装你的 App。它其实是一个 Context.Provider,提供一个加载上下文给组件树。

  1. const rootElement = document.getElementById("root");
  2. ReactDOM.render(
  3. <useWait.Waiter>
  4. <App />
  5. </useWait.Waiter>,
  6. rootElement
  7. );