Не удалось найти правильный поставщик <UserMetadata>над этим виджетом PostItem - PullRequest
0 голосов
/ 29 марта 2020

Я видел эту ошибку, но я не понимаю, почему она выбрасывается. В моем коде провайдер, безусловно, является родителем.

Я создаю провайдера здесь:

Widget build(BuildContext context) {
    final user = Provider.of<User>(context);

    return user == null
        ? AuthView()
        : StreamProvider<UserMetadata>.value(
            value: Database(id: user.uid).userMetadata,
            catchError: (_, error) => UserMetadata(uid: "", likedPids: List()),
            child: Home(
              title: "Siren",
            ),
          );
  }

, который охватывает класс Home. Затем Home вызывает класс PostList () в теле скаффолда

body: PostList(),

, который затем оборачивает PostItem (). Он также оборачивает класс Comments () для перехода при нажатии кнопки, например:

Navigator.push(
  context,
  MaterialPageRoute(
    builder: (BuildContext context) => Comments(post: widget.post),
  ),
);

Я получаю сообщение об ошибке в классе Comments, что он не может найти поставщика.

Эта настройка работает для моего провайдера. Я инициализирую это в моем main.dart и куче мест в других местах. Однако, когда я вызываю провайдера UserMetadata, он выдает вышеуказанную ошибку. Я не могу понять, почему.

...