reactjs 为什么我不能部署我的React网站(Vite)?[关闭]

vuv7lop3  于 2023-04-05  发布在  React
关注(0)|答案(1)|浏览(85)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
4小时前关门了。
Improve this question
我正在用react建立一个新的投资组合网站,我想在Vercel或Github页面上托管它。
我的localhost构建工作正常,没有任何错误,但当我将其部署到Vercel或Github Pages时,它只是一个空白屏幕。favicon和标题更新了,但react应用程序本身似乎没有运行。
这里是repo Cofee-Timer。这里是Vercel Site中的实时站点。
任何帮助都将不胜感激。
按照一些教程的说明更改package.json文件和dist文件夹。

9gm1akwq

9gm1akwq1#

基于~40分钟的探索,这个问题似乎可以归结为错误地使用了useReducer
你需要替换你目前拥有的

const [cyclesState, dispatch] = useReducer(
  cyclesReducer,
  {
    cycles: [],
    activeCycleId: null,
  },
  () => {
    const storedStateAsJSON = localStorage.getItem(
      "@ignite-timer:cycles-state-1.0.0"
    );

    if (storedStateAsJSON) {
      return JSON.parse(storedStateAsJSON);
    }
  }
);

const [cyclesState, dispatch] = useReducer(
  cyclesReducer,
  {
    cycles: [],
    activeCycleId: null,
  },
  (initialState) => { // added argument
    const storedStateAsJSON = localStorage.getItem(
      "@ignite-timer:cycles-state-1.0.0"
    );

    if (storedStateAsJSON && storedStateAsJSON !== "undefined") { // check for "undefined" (as a string)
      return JSON.parse(storedStateAsJSON);
    }
    return initialState; // return default value
  }
);

如果让我猜这个bug是从哪里来的,看起来你以前没有使用localStorage,所以useReducer的第二个参数像你期望的那样工作。然后没有错误,因为一个有效的状态存储在localStorage中。
添加第三个参数后,state的初始值基于该函数的返回值。useReducer的第二个参数作为useReducer的第三个参数中的第一个(也是唯一的)参数传入。
useReducer参考

相关问题