Функция вычисления флаттера не вызывается, если параметр не является примитивом? - PullRequest
0 голосов
/ 18 февраля 2020

Я пытался отправить карту на компьютер, но компьютер никогда не вызывался. Странно то, что если я заменяю Map на int, он работает:

void A()
{
    var map=Map();
    map["p1"]=90;
    D("before compute");
    var r1 = await compute(p1, 10);
    D("after compute(p1) : $r1");
    var r2 = await compute(p2, map);
    // code never reaches here!
    D("after compute(p2) : $r2");
}

static int p2(Map p)
  {
    return p["p1"]*10;
  }

static int p1(int z)
  {
    return z*10;
  }

вывод: после вычисления (p1): 100

1 Ответ

1 голос
/ 18 февраля 2020

В вычислительных методах Flutter используются изоляты и их единственные типы переноса (ноль, num, bool, double, String).

https://api.flutter.dev/flutter/dart-isolate/SendPort/send.html

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