シェルフの logRequests 関数を使用しようとしています。機能は次のとおりです。
Middleware logRequests(
{void logger(String message, bool isError)?}
)
実装は次のようになります。
Middleware logRequests({void Function(String message, bool isError)? logger}) => ...
ここで logRequests を呼び出しています。
final handler = Pipeline().addMiddleware(logRequests()).addHandler(app);
それは正常に動作しますが、オプションのロガー機能が必要なので、メッセージでやりたいことが何でもできます。問題は、ここで引数として関数を渡すことができないように見えることです...関数を引数として渡す方法を検索しましたが、「位置引数が多すぎます: 0 が必要ですが、1 つ見つかりました」.
私は多くの方法で関数を定義しようとしましたが、最後の方法は (ここの回答に見られるように) でした:
void Function(String s, bool b) log() => (String s, bool b) => print('');
そしてそれを次のように呼び出します:
final handler = Pipeline().addMiddleware(logRequests(log)).addHandler(app);
これと私が試した他のすべてのことで、常に上記のエラーが発生します。
では、ここで関数を渡すにはどうすればよいでしょうか。
ありがとう