Альтернатива объекту среды SwiftUI в Flutter

#flutter #dart #swiftui

#flutter #dart #swiftui

Вопрос:

Я изучил SwiftUI, прежде чем начать изучать flutter, и я не мог понять, как создать что-то похожее на объект среды в SwiftUI?

Одно из решений, о котором я мог подумать, — это использование одиночных элементов, но я не уверен, что использование одиночных элементов является хорошим решением для архитектуры flutter.

Например, в SwiftUI вы могли бы получить доступ к данным следующим образом:

 struct MyView: View {
    @EnvironmentObject DataController data

    var body: some View {
        Text(data.title)
    } 
} 
  

И DataController это будет выглядеть так:

 class DataController {
    title = "Hello!"
}
  

С другой стороны, в flutter, если я буду использовать singleton, это будет выглядеть так:

 class MyWidget extends StateLessWidget {
    @override
    Widget build(BuildContext context) {
        return Text(DataController.data.title);
    } 
}
  

И DataController в flutter используется singleton :

 class DataController {
    static DataController data = DataController();
    title = "Hello!";
}
  

Есть ли лучший способ достижения этой функции без передачи аргументов и значений по дереву виджетов с помощью пакета поставщика?

Ответ №1:

Я на самом деле пытаюсь решить ту же проблему, но я думаю, что пакет поставщика может быть правильным выбором. На pub.dev есть множество хороших руководств и полное руководство по установке