来自其他屏幕的Flutter访问商店Mobx

问题描述 投票:1回答:1

如何像在反应中注入商店一样跨屏幕访问MobX商店?

class LoginScreen extends StatefulWidget {
  @override
  _LoginScreenState createState() => _LoginScreenState();
}

class _LoginScreenState extends State<LoginScreen> { 
  final _store = exStore();
  void init() {
   _store.setTitle('foo');
  }
}

当导航到主屏幕时,我需要获取数据标题

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}



class _HomeScreenState extends State<HomeScreen> { 
  final _store = exStore();
  void init() {
   print(_store.title); // return null
  }
} 

我需要_store.title返回'foo'..

flutter dependency-injection mobx
1个回答
0
投票

很简单,您只需要在任何小部件外部创建实例即可,使其具有全局性,如下所示。

  1. 屏幕A
store = exStore();

class LoginScreen extends StatefulWidget {
  @override
  _LoginScreenState createState() => _LoginScreenState();
}

class _LoginScreenState extends State<LoginScreen> { 
  void init() {
   store.setTitle('foo');
  }
}
  1. 屏幕B
class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}



class _HomeScreenState extends State<HomeScreen> { 
  void init() {
   print(store.title); // return null
  }
} 
© www.soinside.com 2019 - 2024. All rights reserved.