Pertanyaan Variabel Global dalam Dart


Saya mencoba membuat aplikasi satu halaman Dart.

Saya telah membuat elemen khusus pertama (custom-application) yang berisi seluruh aplikasi. Ini memiliki wadah di dalamnya yang digunakan untuk membuat pandangan. Dan nav sisi yang akan berisi informasi pengguna dan diperbarui saat pengguna masuk.

Saya ingin berbagi informasi antar tampilan. Bagaimana saya bisa mendefinisikan variabel global dalam custom-application dan dapat membagikannya dengan pandangan lain?

Misalnya, saat Anda memulai aplikasi, Anda tidak diautentikasi. Ketika Anda menelepon / login (login-view) Anda akan memiliki formulir login. Saya ingin, ketika Anda masuk aplikasi, custom-application elemen menyimpan informasi pengguna yang dimuat oleh tampilan bertingkat login-view dan perbarui nav sisi.

Mungkinkah melakukannya?


15
2018-03-21 12:13


asal


Jawaban:


Cukup buat file pustaka dan buat bidang untuk global yang Anda perlukan di sana. Impor pustaka ini di mana pun Anda membutuhkan akses ke bidang ini.

app.dart

import 'globals.dart' as globals;

main() {
  globals.isLoggedIn = true;
}

component1.dart

import 'globals.dart' as globals;

class MyComponent {
  view() {
    if(globals.isLoggedIn) {
      doSomething();
    else {
      doSomethingElse();
    }
  }
}

globals.dart

library my_prj.globals;

bool isLoggedIn = false;

Anda juga bisa
- Buat singleton di perpustakaan globals (lihat Bagaimana Anda membangun Singleton di Dart? untuk lebih jelasnya).
- gunakan teramati untuk mendapatkan pemberitahuan tentang perubahan (lihat Menerapkan pola Observer di Dart, Bagaimana saya bisa memicu semacam acara onChange di kelas untuk lebih jelasnya)


22
2018-03-21 12:21