経緯
ほぼ題名通りですが、Flutterでpathをインポートしたら、これまでエラーが出ていなかった一文、InputDialog(context);
のcontext
に以下のようなエラーが出現。
The argument type 'Context' can't be assigned to the parameter type 'BuildContext'.dart(argument_type_not_assignable)
Context context
package:path/path.dart
The system path context.
This differs from a context created with [new Context] in that its [Context.current] is always the current working directory, rather than being set once when the context is created.
pathのインポート文import 'package:path/path.dart';
を消したら、エラーも消えるので、pathが悪さをしてるんだろうなぁという推測はできるものの、何をどうして良いのか分からず、1日を無駄にしたので、解決法を記事にします。
解決法
1. インポート文を
import 'package:path/path.dart';
から
import 'package:path/path.dart' as path;
のように変更。
2. pathパッケージを使うものはpath.xxx
のように、先頭にpath.
を付けて記述する。
例えば、
basename(file.path)
なら、
path.basename(file.path)
のように記述。
これでエラーは消える。
簡単な対応でエラーが消えるのですが、日本語記事が少なかったこと、私のようなFlutter初心者であれば自力解決が難しいと思ったこと、私自身が一日を無駄にしたことから記事にしました。
参考にしたサイト
STACK OVERFLOW Flutter - I get error when i add import 'package:path/path.dart'