You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

3.4 KiB

已知问题和警告说明

Web 平台警告

警告信息

λ WARN props.pointerEvents is deprecated. Use style.pointerEvents

原因

这个警告来自 [email protected] 库内部,是该库在处理某些 React Native 组件时产生的弃用警告。具体来说:

  • React Native Web 正在从使用 props.pointerEvents 迁移到 style.pointerEvents
  • 这是库内部的实现细节,不是我们应用代码的问题
  • 警告来自 View 组件在 Web 平台上的渲染过程

影响

  • 不影响应用功能 - 应用在 Web 平台上完全正常运行
  • 不影响性能 - 只是一个弃用提示
  • 不影响移动端 - 只在 Web 平台出现

解决方案

方案 1:忽略警告(推荐)

这个警告是无害的,可以安全忽略。等待 react-native-web 库更新到新版本后会自动解决。

方案 2:抑制警告

如果你想在开发时隐藏这个警告,可以在 app.json 中添加配置:

{
  "expo": {
    "web": {
      "bundler": "metro",
      "output": "static",
      "favicon": "./assets/images/favicon.png"
    }
  }
}

或者在代码中添加警告过滤(不推荐):

// 在 app/_layout.tsx 顶部添加
if (typeof window !== 'undefined') {
  const originalWarn = console.warn;
  console.warn = (...args) => {
    if (args[0]?.includes?.('pointerEvents is deprecated')) {
      return;
    }
    originalWarn(...args);
  };
}

方案 3:等待库更新

react-native-web 团队正在积极维护这个库,未来版本会解决这个警告。你可以:

  1. 关注 react-native-web 更新日志
  2. 定期运行 pnpm update react-native-web 更新到最新版本

相关信息

  • 库版本: [email protected]
  • Expo 版本: ~54.0.22
  • React Native 版本: 0.81.5
  • 问题追踪: 这是 react-native-web 库的已知问题,正在逐步迁移中

验证

你可以通过以下方式验证应用功能正常:

# 启动 Web 版本
pnpm web

# 在浏览器中打开 http://localhost:8081
# 检查所有功能是否正常工作

📝 其他注意事项

开发模式下的其他常见警告

1. Metro Bundler 警告

某些依赖可能会产生 Metro 打包警告,这些通常可以安全忽略。

2. React 19 新特性警告

由于使用了 React 19.1.0,某些旧的 API 可能会有弃用警告。

3. Expo Router 类型警告

TypeScript 可能会对某些 Expo Router 的动态路由产生类型警告,这是正常的。

生产构建

在生产构建中,这些警告不会出现,因为:

  • 生产构建会移除所有开发时的警告
  • 代码会被优化和压缩
  • 只有关键错误会被记录

如何报告问题

如果你遇到其他问题:

  1. 检查是否是已知问题(查看本文档)
  2. 查看 Expo 文档
  3. 搜索 Expo GitHub Issues
  4. 在项目中创建 issue 或联系开发团队

总结

当前的 pointerEvents 警告是安全的,可以忽略。 应用在所有平台(iOS、Android、Web)上都能正常运行。这只是一个库内部的迁移提示,不影响你的开发和生产使用。

如果你想要一个完全没有警告的开发体验,可以等待 react-native-web 的下一个主要版本更新,或者使用上述方案 2 临时抑制警告。