仅在获取数据时加载状态

猫女19

我试图在仅获取数据时显示加载程序,而不是在登陆页面和获取数据时首先显示它......有什么想法吗?

这就是我目前正在做的

const handleSearchClick = async () => {
            setItems([]);
            setIsActive(true);

            const { data: { items } } = await fetchData(
                `${process.env.REACT_APP_URL}${page}`,
            );
            items.length && setIsActive(false);
            setPage(1);
            setItems(items);
};


<container>
    <SearchBarContainer>
           <SearchBar
               onClickButton={handleSearchClick}
               onValueChange={handleChange}
               value={value}
               pageNum={page}
            />
    </SearchBarContainer>
    {!isActive ? (/*Display data*/) : 
    (
        <LoaderContainer>
            <RingLoader size={100} />
        </LoaderContainer>
     )}
</container>
佐海卜·伊贾兹

您需要在获取数据之前和之后设置加载状态。

const App = props => {

 const [loading, setLoading] = useState(false);
 const [items, setItems] = useState([]);
  const handleSearchClick = async () => {
    setLoading(true);
    try {
      const { data: { items: newItems } } = await fetchData(
          `${process.env.REACT_APP_URL}${page}`,
      );
      setItems(newItems);
    } catch(e) {
      console.log('Error', e);
    } finally {
      setLoading(false);
    }   
  };


  return (
    <container>
      <SearchBarContainer>
       <SearchBar
           onClickButton={handleSearchClick}
           onValueChange={handleChange}
           value={value}
           pageNum={page}
        />
     </SearchBarContainer>
     {loading ? (
          <LoaderContainer>
              <RingLoader size={100} />
          </LoaderContainer>
       ) : (
        <div>Your data</div>
       );
      }
    </container>
  );

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅在状态更新时执行获取请求

Vue.js动态组件-仅在组件内部获取数据时加载

完全获取数据后加载状态更改

仅在加载所有数据时加载CollectionView单元

Apple Watch-仅在手机上的应用程序处于活动状态时才获取数据

生命周期 - 仅在加载完成后获取数据

如何使用闭包仅在加载数据时完成?(迅速)

如何仅在数据尚未加载时使用 fetch

Nextjs在重新加载页面时获取数据

主页加载时如何从Firestore获取数据?

在等待获取数据时显示加载屏幕

从服务获取数据时 HTTP 加载失败

AJAX-仅在有新数据时获取

仅在遍历 json 数据时获取字符串

数组仅在刷新页面时获取数据

加载数据时不显示无效的 UI 状态

每次激活RouteGuard时重新加载ngrx状态数据

仅在处于活动状态时如何加载Bootstrap动态选项卡内容?

组件仅在页面重新加载时显示动画,而不是在状态更改时显示

ResultSet是将所有数据加载到内存还是仅在请求时加载?

数据值仅在重新加载时加载,同时使用 VueJs v-bind

仅在需要时加载图像

jQuery .change事件仅在输入数据时触发,但在字段预加载时不会触发

Flutter:在过滤 json 数据时获取“状态”的实例

将数据放入状态时无法获取json中的数组

AWS 状态机 ASL:仅在返回数据时使用结果选择器

尝试汇总时获取“禁止加载字段数据”

使用vuejs加载页面时如何从firebase获取数据?

带Axios的Nuxt在页面加载时不会从API获取数据