Флаттер: «Слишком много позиционных аргументов: ожидалось 0, но найдено 1»

#flutter #dart

Вопрос:

Я пытаюсь создать приложение для фотогалереи в flutter, но у меня есть эта ошибка «Слишком много позиционных аргументов: 0 ожидаемых, но 1 найдено», когда я жду _controller.takePicture(путь); Может ли кто-нибудь сказать мне, как я могу это исправить.

 void _takePicture() async {
    try {
        await _initializeControllerFuture;

        final tmpDirectory = await getTemporaryDirectory();
        final filePath = '${DateTime.now().millisecondsSinceEpoch}.png';
        final path = join(tmpDirectory.path, filePath);

        await _controller.takePicture(path);

        widget.didProvideImagePath(path);
    } catch (e) {
        print(e);
    }
}
 

Комментарии:

1. не могли бы вы показать, что находится внутри didProvideImagePath?

Ответ №1:

Если он говорит, что не принимает параметры, просто вызовите метод как есть:

 widget.didProvideImagePath();
 

Комментарии:

1. извините, что это не виджет.didProvideImagePath(путь); что я получаю ошибку. Это была строка выше, в которой я получаю ошибку, которая является await _controller.takePicture(путь);. знаете ли вы, как решить эту проблему?

2. Посмотрите, какие параметры принимает эта функция. По крайней мере, они не являются позиционными, поэтому, возможно, для этого вообще не требуются параметры _controller.takePicture() или именованные параметры. Но для проверки этого потребуется определение функции