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

React Storefront调用fulfillAPIRequest报_includeAppData未定义错误如何解决

问题修复方案

你遇到的TypeError: Cannot read property '_includeAppData' of undefined错误是由三处配置疏漏共同导致的,按优先级修复如下:


1 修复API路由的入参错误与缺失逻辑

Next.js原生API路由的导出函数仅包含(req, res)两个入参,你错误定义了参数顺序导致fulfillApiRequest拿到的输入对象不符合预期,同时缺失getAppData定义和响应返回逻辑。
修改/pages/api/index.js代码:

import fulfillApiRequest from 'react-storefront/props/fulfillAPIRequest'

// 补充缺失的全局数据获取方法,可按业务需要填充用户信息、站点配置等全局通用字段
async function getAppData() {
  console.info("Executing 'getAppData' in /api/index.js...")
  return Promise.resolve({
    siteName: "示例站点"
    // 其他全局字段
  })
}

function getPageData () {
  console.info("Executing 'getPageData' in /api/index.js...")
  return Promise.resolve({
    // 填充首页需要的页面级数据
    nearbyShops: []
  })
}

// 修正入参顺序,Next.js API路由只有req、res两个入参
export default async function Index (req, res) {
  console.info("Executing '/pages/api/index.js' ...")
  const result = await fulfillApiRequest(req, {
    appData: () => getAppData(),
    pageData: () => getPageData()
  })
  // 补充返回响应给前端
  res.send(result)
}

2 修复首页props传递逻辑

你在首页组件中获取到lazyProps后没有透传给子组件,同时超时配置不合理容易触发请求失败。
修改pages/index.js代码:

import React from 'react'
import { fetchFromAPI, createLazyProps } from 'react-storefront/props'
import NearbyShops from '../components/shops/nearby-shops.js'

// 把接口返回的pageData、appData透传给子组件
export default function Index(lazyProps) {
  return  (
    <NearbyShops {...lazyProps} />
  )
}

// 超时时间调整为合理值,50ms过短容易触发超时中断
Index.getInitialProps = createLazyProps(fetchFromAPI, { timeout: 3000 })

3 修复自定义App的初始化逻辑

你没有将全局数据的序列化逻辑接入_app.js的初始化流程,导致useAppStore无法正常消费数据。
修改_app.js中MyApp.getInitialProps部分代码:

MyApp.getInitialProps = async function({ Component, ctx }) {
  let pageProps = {}

  if (Component.getInitialProps) {
    console.info("Executing _app.js: Invoking Component.getInitialProps...")
    pageProps = await Component.getInitialProps(ctx)
  }

  // 补充全局数据传递逻辑
  if (ctx.req && pageProps?.appData) {
    pageProps.appData = pageProps.appData
  }

  return { pageProps }
}

完成以上三处修改后重启应用即可解决报错。


内容的提问来源于stack exchange,提问作者Mopparthy Ravindranath

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:51:03