You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行HTTP请求时React DOM消失,调用getAll()报类型错误

解决MERN前端请求数据时DOM消失及getAll不是函数的问题

问题现象

后端单独运行正常,手动发送HTTP请求可正常获取数据,但前端组件调用请求时页面直接空白,浏览器控制台报错:

Uncaught TypeError: services_items__WEBPACK_IMPORTED_MODULE_1_.default.getAll is not a function

问题根源与修复方案

1. getAll 无法直接通过类名调用

你定义的ItemRequests是类,getAll是实例方法,不能直接通过类名调用。有两种修复方式:

方式一:将方法改为静态方法
修改ItemRequests类:

import http from "http-config"

class ItemRequests{
   // 添加static关键字转为静态方法
   static getAll(page = 0){
      return http.get("?page=" + page)
   }
}

export default ItemRequests

方式二:创建类实例后调用方法
在ItemList组件中实例化ItemRequests:

import React, {useEffect, useState} from "react"
import ItemRequests from "./dataservices/items.js"

// 创建类实例
const itemService = new ItemRequests()

function ItemList(props){
   // 修复useState解构缺失const的问题
   const [items, setItems] = useState([])

   useEffect(() => {
      // 通过实例调用方法
      itemService.getAll()
      .then(results => {
          console.log(results)
          setItems(results.data)
      })
      .catch(e => {
          console.log(e)
      })

   }, [])

   return(
      <h6>If this prints the issue has been resolved</h6>
      {/*Additional code*/}
   )
}

2. http-config 语法错误

axios.create的调用语法错误,正确写法是传入配置对象,修改http-config:

import axios from "axios"

// 修正为axios.create({ ... })
export default axios.create({
   baseURL: "https://localhost:XXXX/route/to/server",
   headers: {
      "Content-type": "application/json"
   }
})

3. React组件中useState解构缺失声明关键字

原代码中[items, setItems] = useState([])缺少const,会导致语法错误,修正为:

const [items, setItems] = useState([])

说明

以上错误会导致JavaScript执行中断,进而使得React组件无法完成渲染,最终表现为页面空白。修复这些语法和调用方式问题后,组件就能正常渲染并发起请求。

内容的提问来源于stack exchange,提问作者Juan David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:10:28