[Fix] searchBar `focus:` true ignored on mergeOptions when searchController already exists

Abierto Apto para principiantes
#8,318 0 comentarios 0 reacciones 0 asignados Ver en GitHub

@IsaacIsrael ya está trabajando en esto.

Desde el 1/6/2026.

  • #8319 de @IsaacIsrael — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
ios, objective-c, react-native
Área
mobile

Línea de trabajo

Comienza en UIViewController+RNNOptions.mm, en setSearchBarWithOptions:, comparando el flujo del controlador existente con el flujo de creación inicial. Verifica el flujo de mergeOptions en una pantalla con un controlador de búsqueda existente y, después, ejecuta las pruebas relevantes de iOS o reproduce los pasos para cambiar entre pestañas. Se considera terminado cuando focus: true vuelve a enfocar la barra de búsqueda después de mergeOptions sin cambiar el comportamiento de la creación inicial.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Bug

When calling Navigation.mergeOptions() with topBar.searchBar.focus: true on a screen that already has a search controller, the focus is silently ignored. The search bar only auto-focuses on initial creation (first applyOptions), never on subsequent mergeOptions calls.

Current Behaviour

setSearchBarWithOptions: in UIViewController+RNNOptions.mm only handles focus inside the if (!self.navigationItem.searchController) branch (initial creation). The else branch (existing search controller) skips focus entirely.

Expected Behaviour

mergeOptions with focus: true should refocus the search bar even when the search controller already exists. This is needed for re-focusing the search bar when the screen reappears (e.g., switching back to a bottom tab).

Steps to Reproduce
  1. Register a screen with searchBar: { visible: true, focus: true } in static options
  2. Screen mounts — search bar is focused (correct)
  3. Navigate away from the screen (e.g., switch tabs)
  4. Navigate back and call Navigation.mergeOptions(componentId, { topBar: { searchBar: { visible: true, focus: true } } })
  5. Search bar is not focused
Proposed Fix

Add focus handling in the else branch of setSearchBarWithOptions::

} else {
    // ... existing iOS 26 placement code ...

    if (focus) {
        dispatch_async(dispatch_get_main_queue(), ^{
          self.navigationItem.searchController.active = true;
          [self.navigationItem.searchController.searchBar becomeFirstResponder];
        });
    }
}
Environment
  • react-native-navigation: 8.8.2
  • React Native: 0.85.3
  • iOS 18+
Lenguaje dominante
MDX
Estrellas
13.2k
Forks
2.6k
Merge medio
2 d 10 h
PR fusionados (30 d)
6

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de wix/react-native-navigation

Todos los issues de wix/react-native-navigation

Issues similares

Más issues de Mobile Dev

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.