Как setState работает в функции обратного вызова с изменением параметров - PullRequest
0 голосов
/ 31 марта 2019

Вызов функции отправки изображения с параметром (функция возврата), как setState с параметрами.

Env

[✓] Flutter (Channel stable, v1.2.1, on Mac OS X 10.13.6 17G6029, locale en-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
[✓] Android Studio (version 3.3)
[✓] VS Code (version 1.32.3)
[✓] Connected device (1 available)

onSendProgress - это обратный вызов функции, определенный в uploadImage

    var result = await uploadApi.uploadImage(
      context,
      _scaffoldKey,
      imageData,
      onSendProgress,
    );
  void onSendProgress(int count, int total) {
      setState(() {
        uploadPercentage = count / total;
        print(uploadPercentage);
      });
  }

При запуске кода uploadPercentage будет выводить значения серии от 0 до 1, например,

flutter: 0.25661834269331224
flutter: 0.2566929379358112
flutter: 0.25676753317831025
flutter: 0.2568421284208092
flutter: 0.25691672366330826
flutter: 0.2569913189058073
flutter: 0.25706591414830626
flutter: 0.2571405093908053
flutter: 0.25721510463330427
flutter: 0.2572896998758033
flutter: 0.2573642951183023
...

, но в виджете show uploadPercentage,

Text("Uploading ${uploadPercentage}");

изменится, наконец, только один раз (1)

Результат надежды:

Text("Uploading ${uploadPercentage}");

также покажет изменяющийся результат, так же как консоль выше

...