Доступ к глобальным переменным в dart / flutter - PullRequest
2 голосов
/ 10 июля 2020

Кажется, я не могу получить доступ к своим глобальным переменным _firestore и loggedInUser из другого класса в flutter / dart. Из того, что я прочитал в документации и в Интернете, это должно быть возможно?

Создание глобальных переменных:

   import 'package:cloud_firestore/cloud_firestore.dart';
    
    final _firestore = Firestore.instance;
    FirebaseUser loggedInUser;
    
    class TheSlateScreen extends StatefulWidget {

Попытка получить к ним доступ здесь:

import 'package:theslate/screens/theslate_screen.dart';

class SlateTasks extends ChangeNotifier {

 void addTask(String newTaskTitle) {

    _firestore.collection('Test').add({
      'Task': newTaskTitle,
      'User': loggedInUser.email,
    });

1 Ответ

3 голосов
/ 10 июля 2020

Подчеркивание _ перед именем переменной означает, что переменная является частной. Глобальная переменная должна быть переменной publi c, переменная publi c, с другой стороны, должна начинаться без _. Изменив "final _firestore = Firestore.instance" на "final firestore = Firestore.instance", вы должны иметь возможность получить доступ к вашей переменной глобально.

Другой способ сделать вашу приватную переменную доступной на глобальном уровне - это добавить получатель, подобный этому: Firestore get firestore => _firestore;

...