小编Suy*_*kar的帖子

如何将 setTimeout() 与 React Hooks useEffect 和 setState 一起使用?

我想等待 10 秒,以便 API 调用从后端获取类别列表数组并存储在挂钩状态中。如果 10 秒内没有获取任何内容,我想将错误挂钩状态设置为 true。

但问题是,即使在最初获取数组之后,错误状态也会设置为 true,并且处于状态的categoriesList 数组会在 10 秒后消失。

import React, { useState, useEffect } from "react";

import { doGetAllCategories } from "../helper/adminapicall.js";

const ViewCategories = () => {
  let [values, setValues] = useState({
    categoriesList: "",
    error: false,
  });

  let { categoriesList, error } = values;

  const preloadCategories = () => {
    doGetAllCategories()
      .then((data) => {
        if (data.error) {
          return console.log("from preload call data - ", data.error);
        }
        setValues({ ...values, categoriesList: data.categories });
      })
      .catch((err) => …
Run Code Online (Sandbox Code Playgroud)

javascript settimeout reactjs react-hooks use-effect

4
推荐指数
1
解决办法
2万
查看次数