Electron-ForgeReact自定义钩子不调用API

nszi6y05  于 2023-06-27  发布在  Electron
关注(0)|答案(1)|浏览(125)

我正在尝试构建一个桌面应用程序,以便从一个在线电子学习门户网站下载课程。我正在使用电子锻造与React和Webpack来创建UI。我可以在本地开发环境中下载课程。但是,我的自定义钩子是没有得到执行时,我试图从Mac的可执行文件(dmg),这是使用npm run make创建的。

import React, { useState, useEffect, useContext } from "react";
import { Context } from "../context/context";

export default function useFetchCourseData(courseId) {
  console.log("useFetchCourseData");
  const [courseData, setCourseData] = useState([]);
  const [lectureCount, setLectureCount] = useState([]);
  let { token } = useContext(Context);

  const fetchCourseData = async () => {
    console.log("fetchCourseData API CAll");
    await fetch(
      'URL',
      {
        headers: {
          Authorization: `Bearer ${token}`,
        },
      }
    )
      .then((res) => res.json())
      .then(({ results }) => {
        const courseData = {};
        let current;
        let lectureCount = 0;
        results.forEach((item, index) => {
          if (item._class === "chapter") {
            current = index;
            courseData[index] = {};
            courseData[index]["meta"] = item;
          } else if (item._class === "lecture") {
            lectureCount += 1;
            if (courseData[current]["lectures"] === undefined)
              courseData[current]["lectures"] = {};
            courseData[current]["lectures"][index] = item;
          }
        });
        setCourseData(courseData);
        setLectureCount(lectureCount);
      });
  };

  useEffect(() => fetchCourseData,[]);

  return [courseData, lectureCount];
}

这里useEffect没有调用fetchCourseData方法,该方法在开发模式下工作正常。

pu3pd22g

pu3pd22g1#

尝试将useEffect

useEffect(() => fetchCourseData,[]);

useEffect(() => { fetchCourseData() },[]);

相关问题