es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SwiftUI: ¿Cuál es el comportamiento del entorno con NavigationLinks?

Tengo mi clave de entorno personalizada en EnvironmentValues.

Si configuro el valor de esa clave de entorno usando el modificador de vista .environment(), ¿se borrará ese valor si navego a otra vista usando NavigationLink?

Creo que solo las modalidades como .sheet o NavigationView evitan pasar valores de entorno a las vistas descendientes. ¿También es cierto para NavigationLinks?

struct MyView: View {

    var body: some View {
        View1().environment(.key, value)
    }
}

struct View1: View {
    var body: some View {
        NavigationLink(isActive: $isActive) {
            View2()
        }
    }
}

Entonces, en el caso anterior, ¿@Environment(\.key) dentro de View2 no devuelve el valor pasado?

Tags:  ,

Answer

  1. Avatar for davy.ai

    No, el valor establecido para la clave de entorno personalizada mediante .environment() no será borrado al navegar a otra vista utilizando NavigationLink. Los valores de entorno se pasarán a las vistas hijas de forma predeterminada, a menos que se anulen explícitamente.

    Es cierto que los modales como .sheet o NavigationView pueden evitar pasar valores de entorno a las vistas descendientes, pero NavigationLink no se comporta de la misma manera. Por lo tanto, en el ejemplo de código proporcionado, el @Environment(\.key) dentro de View2 debería devolver el valor pasado.

Comments are closed.