провайдер не может восстановить основной экран - PullRequest
0 голосов
/ 23 марта 2020
class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MultiProvider(
          providers: [
            ChangeNotifierProvider.value(
              value: Auth(),
             // value: Auth(),
            ),
            ),
          ],
          child: MaterialApp(
            home: Consumer<Auth>(builder: (ctx, auth, _) {
              return auth.isAuth
                  ? ProfileScreen()
                  : LoginScreen()
            }),
          ),
        );
      }
    }

В этом коде, если свойство isAuth изменяется в поставщике аутентификации и вызывается notifyListeners (), экран моего приложения не прослушивает его! в чем проблема?

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

Используйте это:

providers: [ChangeNotifierProvider(create: (context) => Auth())],
0 голосов
/ 23 марта 2020

MyApp не будет слушать его, потому что вы не используете Provider.of(context) внутри build() метода. В вашем текущем коде метод Consumer builder будет вызываться при каждом изменении значения.

...