#flutter #dart
#флаттер #дротик
Вопрос:
Я загрузил проект с github, и это ошибка, ожидается 1 позиционный аргумент (ы), но найдено 0.
Это мой main.dart
class GameWrapper extends StatelessWidget {
final FlutterBirdGame flutterBirdGame;
GameWrapper(this.flutterBirdGame);
@override
Widget build(BuildContext context) {
return flutterBirdGame.widget;
}
}
class Singleton {
Size screenSize;
Singleton._privateConstructor();
static final Singleton instance = Singleton._privateConstructor();
}
void main() async {
// initial settings
WidgetsFlutterBinding.ensureInitialized();
Flame.audio.disableLog();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
SystemChrome.setEnabledSystemUIOverlays([]);
var sprite = await Flame.images.loadAll(["sprite.png"]);
var screenSize = await Flame.util.initialDimensions();
Singleton.instance.screenSize = screenSize;
var flutterBirdGame = FlutterBirdGame(sprite[0], screenSize);
runApp(MaterialApp(
title: 'myfirstgame',
home: GestureDetector(
onTapDown: (TapDownDetails evt) => flutterBirdGame.onTap(),
child: Scaffold(
body: GameWrapper(flutterBirdGame),
),
),
));
}
widget_test.dart я получаю сообщение об ошибке из этой строки, скажем, попробуйте добавить недостающие аргументы.dart(not_enough_positional_arguments) но я не знаю, как передать аргумент.
await tester.pumpWidget(GameWrapper()); //
Ответ №1:
Вашему GameWrapper
классу нужен FlutterBirdGame
экземпляр в его конструкторе, попробуйте добавить его:
final birdGame = // init FlutterBirdGame variable
await tester.pumpWidget(GameWrapper(birdGame));
Комментарии:
1. final birdGame = // инициализировать переменную FlutterBirdGame, что это значит?
2. Вы инициализируетесь
GameWrapper
вmain
функции. Вы можете использовать аналогичный экземпляр или макет (подробнее об этом ).3. Это должна быть допустимая
FlutterBirdGame
инициализация.4. как? пожалуйста, скажите мне, сэр
5. В
main
функции` вы объявляете это :var flutterBirdGame = FlutterBirdGame(sprite[0], screenSize);
.
Ответ №2:
Вашему GameWrapper
классу требуется FlutterBirdGame
объект: попробуйте сделать так :
final flutterBirdGame = new FlutterBirdGame();
await tester.pumpWidget(GameWrapper(flutterBirdGame));
Комментарии:
1.
final flutterBirdGame = new FlutterBirdGame();
в этой строке у меня ошибка 2 ожидаемых позиционных аргумента (ов), но найдено 0.2. Как указано в ссылке [ github.com/g0rdan/Flutter.Bird/blob/master/lib/game /… конструктор класса FlutterBirdGame имеет 2 обязательных поля: > FlutterBirdGame(изображение spriteImage, Размер экрана) {…}, поэтому вам необходимо передать эти объекты. [1]: github.com/g0rdan/Flutter.Bird/blob/master/lib/game/game.dart
3. как? пожалуйста, скажите мне isr