Rxdart BehaviorSubject将其值设置为null

时间:2018-08-05 12:31:58

标签: dart flutter

我对Rxdart BehaviorSubject有有线问题!我创建了一个颤动的屏幕,其中有两个TextField和一个DropdownButton,并且我收到了带有块模式的数据。

但是当我更改TextField的值时,连接到BehaviorSubject的{​​{1}}的值将为空,而当我更改DropdownButton的值时,两个{{连接到DropdownButton的1}} s为空。

它也不影响小部件的呈现。

谁能帮助我了解我在这里做错了什么。这是我的集团代码:

BehaviorSubject

1 个答案:

答案 0 :(得分:1)

因此,在重写代码之后,我终于找到了问题所在。这太烦人了,我希望这个答案对其他人有帮助。

问题是我在路由内添加了提供程序,因此代码如下:

Route routes(RouteSettings settings) {
  switch(settings.name) {
    case '/app':
      return MaterialPageRoute(
        builder: (context) {
          return MainProvider(child: MainScreen());
        }
      );
    ...
  }
}

因此,我将其更改为以下代码,并将所有提供程序引入了主要构建功能:

class App extends StatelessWidget {
  Widget build(context) {
    return UserProvider(
      child: ListsProvider(
        child: TransactionsFormProvider(
          child: MaterialApp(
            onGenerateRoute: routes,
            ...
          ),
        ),
      ),
    );
  }
}

但是最后我不明白BehaviorSubject和此解决方案之间的关系到底是什么:))