callstack / callstack/react-native-bottom-tabs

[IOS] Swift Compilation Error in NewTabView.swift - Generic Parameter Inference Failure

未关闭
#490 6 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
bug
主要语言
TypeScript
星标
1.5k
派生
109
平均合并
11 小时 44 分钟
30 天内合并 PR
8

描述

### Before submitting a new issue

- [x] I tested using the latest version of the library, as the bug might be already fixed.
- [x] I tested using a [supported version](https://github.com/reactwg/react-native-releases/blob/main/docs/support.md) of react native.
- [x] I checked for possible duplicate issues, with possible answers.

### Bug summary

When building an iOS project with react-native-bottom-tabs, compilation fails with Swift type inference errors in NewTabView.swift. The issue occurs on iOS 26.0+ code paths related to @Environment key paths.

### Library version

1.1.0

### Environment info

```shell
System:
OS: macOS 15.5
Shell: 5.9 - /bin/zsh
Binaries:
Node: 22.11.0 - ~/.nvm/versions/node/v22.11.0/bin/node
npm: 10.9.0 - ~/.nvm/versions/node/v22.11.0/bin/npm
Watchman: 2024.12.02.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.16.2 - /usr/local/opt/ruby/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 24.5, iOS 18.5, macOS 15.5, tvOS 18.5, visionOS 2.5, watchOS 11.5
IDEs:
Xcode: 16.4/16F6 - /usr/bin/xcodebuild
npmPackages:
expo: ~54.0.27 => 54.0.27
expo-router: ~6.0.17 => 6.0.17
react: 19.1.0 => 19.1.0
react-dom: 19.1.0 => 19.1.0
react-native: 0.81.5 => 0.81.5
react-native-web: ^0.21.0 => 0.21.2
npmGlobalPackages:
eas-cli: 16.28.0
Expo Workflow: bare
```

### Steps to reproduce

### **Steps to Reproduce**
Install react-native-bottom-tabs in a React Native project with Xcode 16.4+

Build iOS project
Observe compilation fails with Swift errors

**Expected Behavior**
The project should compile successfully without Swift type inference errors.

**Actual Behavior**
Compilation fails with the following Swift compiler errors:

```
❌ (node_modules/react-native-bottom-tabs/ios/TabView/NewTabView.swift:100:4)
100 | @Environment(\.tabViewBottomAccessoryPlacement) var tabViewBottomAccessoryPlacement
| ^ generic parameter 'T' could not be inferred

❌ (node_modules/react-native-bottom-tabs/ios/TabView/NewTabView.swift:100:16)
100 | @Environment(\.tabViewBottomAccessoryPlacement) var tabViewBottomAccessoryPlacement
| ^ cannot infer key path type from context; consider explicitly specifying a root type
```

### **Code Location**
```
The error occurs in node_modules/react-native-bottom-tabs/ios/TabView/NewTabView.swift, lines 98-103:

swift
@available(iOS 26.0, *)
struct BottomAccessoryRepresentableView: PlatformViewRepresentable {
@Environment(\.tabViewBottomAccessoryPlacement) var tabViewBottomAccessoryPlacement // Line 100
var view: PlatformView

func makeUIView(context: Context) -> PlatformView {
// ...
}
}
```

### Note from the reporter:
I'm not very familiar with Swift/SwiftUI development, so I don't know what more to provide here. I'm happy to provide more details, logs, or help test any proposed solutions to resolve this issue!

贡献指南

打开贡献指南

调研方向

从 node_modules/react-native-bottom-tabs/ios/TabView/NewTabView.swift 的第 98-103 行附近开始,并在报告的配置下使用 Xcode 16.4+ 重现 iOS 构建。检查 iOS 26.0+ 的 @Environment 声明及相关类型,以确定 Swift 无法推断 key-path 类型的原因。项目能够在没有这些 Swift 编译错误的情况下构建即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
ios, react-native, swift
领域
mobile-dev
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
42/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。