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

添加BrowserRouter后页面空白,附截图及代码求排查

问题排查与解决

从控制台错误来看,核心问题是无法读取data.products,因为data是undefined或者没有products属性,导致HomeScreen组件渲染失败,最终页面空白。下面是具体排查步骤:

1. 检查data.js文件的位置与导出格式

  • 文件位置:HomeScreen.js在src/screens/目录下,导入路径是../data,所以data.js必须放在src/根目录下,否则会找不到文件导致data为undefined。
  • 导出格式:确保data.js的导出符合导入方式:
    • 如果是默认导出(当前代码用的import data from '../data'),data.js的内容应该是:
      export default {
        products: [
          // 示例产品数据
          {
            slug: 'sample-product',
            name: 'Sample Product',
            price: 29.99,
            image: '/images/sample.jpg'
            // 其他产品属性
          }
          // 更多产品项
        ]
      };
      
    • 如果data.js用的是命名导出(比如export const data = { ... }),则需要修改HomeScreen的导入语句为:
      import { data } from '../data';
      

2. 验证React Router版本兼容性

你的代码使用了<Routes>和element属性,这是react-router-dom v6的语法。如果安装的是v5版本,会导致路由渲染失败,但当前控制台错误指向data的问题,所以先优先解决data的问题。若data问题解决后仍空白,可检查版本:

  • 确认安装的是v6:执行npm list react-router-dom查看版本,若为v5,需升级到v6:
    npm install react-router-dom@latest
    

3. 临时调试验证

可以先在HomeScreen组件中添加容错处理,确认是否是data的问题:

import data from '../data';
function HomeScreen() {
  // 临时添加调试
  console.log('data:', data);
  return (
    <div>
      <h1>Features Products </h1>
      <div className="products">
        {/* 添加容错,避免data未定义时报错 */}
        {data?.products?.map((product) => (
          <div className="product" key={product.slug}>
            {/* 原有代码 */}
            <a href={`/product/${product.slug}`}>
              <img src={product.image} alt={product.name} />
            </a>
            <div className="product-info">
              <a href={`/product/${product.slug}`}>
                <p>{product.name}</p>
              </a>
              <p>
                <strong>${product.price}</strong>
              </p>
              <button> Add To Cart</button>
            </div>
          </div>
        ))}
      </div>
    </div>
  );
}

内容的提问来源于stack exchange,提问作者Areetha Ma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:10:27