callstack / callstack/react-native-bottom-tabs
[IOS] Swift Compilation Error in NewTabView.swift - Generic Parameter Inference Failure
- Dominant language
- TypeScript
- Stars
- 1.5k
- Forks
- 109
- Avg merge
- 11h 44m
- Merged PRs (30d)
- 8
Description
### 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!
Contributor guide
Research direction
Start in node_modules/react-native-bottom-tabs/ios/TabView/NewTabView.swift around lines 98-103 and reproduce the iOS build with Xcode 16.4+ on the reported setup. Inspect the iOS 26.0+ @Environment declaration and related types to determine why Swift cannot infer the key-path type. Done means the project builds without these Swift compilation errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, react-native, swift
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100