Перезагрузка страницы в Flutter с Rest API - PullRequest
0 голосов
/ 21 апреля 2020

Почему функция извлечения данных с сервера выполняется каждый раз, когда я посещаю сайт?

Кто-нибудь может подумать, как преобразовать это, загружая информацию только в первый раз, а затем перезагружая только тогда, когда происходят изменения?

Я использую эту топи c, чтобы написать свою функциональность: https://github.com/flutter/flutter/issues/11426#issuecomment -414047398

спасибо за любую помощь:)

мой код:

class _MyFollowsState extends State<MyFollows> {

  UserApiService userApiService;
  SharedPreferences sharedPreferences;
  Future _future;

  @override
  void initState(){
    super.initState();
    userApiService = UserApiService();
    _future = getUserData();
  }

  getUserData() async{
    sharedPreferences = await SharedPreferences.getInstance();
    int id = sharedPreferences.getInt('id');
    return userApiService.getUser(id);
  }

  @override
  Widget build(BuildContext context){
    return FutureBuilder(
      future: _future,
      builder: (context, snapshot){
        if(!snapshot.hasData){
          return Scaffold(
            backgroundColor: Colors.white,
            body: Center(
              child: CircularProgressIndicator(),
            ),
          );
        }
        User user = snapshot.data;
        return Scaffold(
          backgroundColor: Colors.white,
          body: Container(
            child: ListView.builder(
              itemCount: user.myFollows.length,
              itemBuilder: (context, i){
                return GestureDetector(
                  onTap: () {
                    //
                  },
                  child: Card(
                    margin: EdgeInsets.only(top: 15, right: 10, left: 10),
                    child: ListTile(
                      title: Text(user.myFollows[i].firstName + ' ' + user.myFollows[i].lastName),
                      subtitle: Text(user.myFollows[i].accountName),
                      leading: CircleAvatar(
                            radius: 25,
                            backgroundImage: NetworkImage('https://upload.wikimedia.org/wikipedia/commons/8/8d/George_Clooney_2016.jpg'),
                      ),
                      trailing: Icon(Icons.more_vert),
                    ),
                  )
                );
              }
            )
          ),
        );
      },
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...