0
votes

Comment actualiser un constructeur ListView pour cliquer sur un bouton?

Je veux filtrer une liste d'identité par ID ou votre auteur à l'aide de fournisseur après que je clique sur Relevablebutton, mais rien ne semble se produire, c'est ce que l'identifiant a fait:

Le bouton actualisé P>

@override
  Widget build(BuildContext context) {
    final todo_provider = Provider.of<TodoProvider>(context);

    // TODO: implement build
    return Container(
      child: FutureBuilder<News>(
        future: _future,
        initialData: todo_provider.getnews,
        builder: (context, snapshot) =>
            snapshot.connectionState == ConnectionState.none ||
                    snapshot.data == null
                ? CircularProgressIndicator()
                : Container(
                    height: 500.0,
                    child: ListView.builder(
                      shrinkWrap: true,
                      itemCount: snapshot.data.articles.length,
                      itemBuilder: (context, index) => Text(
                        snapshot.data.articles[index].author.toString(),
                      ),
                    ),
                  ),
      ),
    );
  }


0 commentaires

3 Réponses :


1
votes

Essayez d'envelopper votre fonction déprimée par un setState

  onPressed: () {
          setState() {
           todo_provider.settNewss('John Biggs');
          }
        },


2 commentaires

Merci de votre réponse, ce n'est pas la bonne façon de résoudre le problème parce que j'utilise un fournisseur qui signifie que je dois éviter la State () {}


Je n'ai pas remarqué que désolé



0
votes

Lorsque vous utilisez un fournisseur, pour mettre à jour les données à votre consommateur, vous devez utiliser

final todo_provider = Provider.of<TodoProvider>(context, listen: false);


1 commentaires

Merci, mais j'ai déjà ajouté NotifyListener (); Quand j'appelle la méthode de SettNewsSS ()



0
votes

J'ai enfin trouvé une solution, consiste à mettre à jour la valeur future sur futurbuilder:

ancienne: xxx

nouveau: xxx

ou: xxx


0 commentaires