Флаттер-вычислительный метод - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь выполнить тяжелый метод по compute().
Я так и пытался. После выполнения loop обновляется виджет Text, но result возвращает 0 почти сразу после нажатия кнопки.
Кто-нибудь знает, что мне не хватает?

 int _counter;

  static int loop(int val) {
    int count = 0;
    for (int i = 1; i <= val; i++) {
      count += i;
    }
    return count;
  }

  Future<void> _onPressed() async {
    int result = await compute(loop, 1000000000000000000);
    setState(() {
      _counter = result;
    });
  }

1 Ответ

0 голосов
/ 06 сентября 2018

Согласно https://docs.flutter.io/flutter/foundation/compute.html,

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

Удалите ключевое слово static, оно должно работать нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...