Флаттер веб: попытался вызвать не-функцию, например, null: 'dart.global.myFunction' - PullRequest
0 голосов
/ 24 марта 2020

Я видел и пробовал ответы на следующие вопросы SO:

Вопрос 1

Вопрос 2

Вот что я делаю:

Это мой код дротика:


@JS()
library t;

import "package:js/js.dart";

@JS("getHomeName")
external String getHostName();

Я добавил этот скрипт перед сценарием main.dart. js в индексе. html:


  <script>
    function getHostName(){
      return "HOST NAME from javascript" ;
    }
  </script>

И я получаю доступ к этой функции getHostName из некоторого другого файла дротика, например, так:

import 'my_js_interface_thing' ; 
print("Got hostname : ${getHostName()}") ;

Но я получаю следующую ошибку:

Another exception was thrown: NoSuchMethodError: tried to call a non-function, such as null: 'dart.global.getHomeName'

Полагаю, это как-то связано с тем, как я получаю доступ к функции getHostName из дротика? К сожалению, документы package:js не указывают и не дают никаких примеров кода, касающихся использования методов интерфейса изнутри dart.

...