在這里,我定義了一個帶有可選命名引數的方法定義。
class PostBuilder extends StatefulWidget {
final Future<List<Submission>> Function({String? next}) postFetcher;
...
...
}
我可以按預期呼叫該函式,如下所示。
class _PostBuilderState extends State<PostBuilder> {
...
...
_fetch() async {
var posts = await widget.postFetcher();
// or
var posts = await widget.postFetcher(next: _items.getLast()?.name);
}
但不幸的是,我不知道如何正確使用它,也不知道正確的語法。
PostBuilder((next) => getPosts(next))
這是編譯器拋出的語法錯誤
error: The argument type 'Future<List<Submission>> Function(dynamic)' can't be assigned to the parameter type 'Future<List<Submission>> Function({String? next})'. (argument_type_not_assignable)
uj5u.com熱心網友回復:
postFetcher接受一個命名引數。如果要為其分配匿名函式,則該匿名函式還必須采用命名引數。匿名函式的語法與命名函式的語法相同(匿名函式的型別通常被省略,因為它們可以被推斷出來)。因此,您希望:
PostBuilder(({next}) => getPosts(next))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/471870.html
上一篇:Flutter/Dart決議JSON以使用Map屬性建模
下一篇:Flutter-LateError(LateInitializationError:欄位'_items@68190616'尚未初始化。)
