【发布时间】:2023-01-15 20:08:43
【问题描述】:
我试图用 getx 创建小项目,我有 3 个文件的获取视图、getxcontroller、绑定,然后当我运行时我遇到这样的问题:
未处理的异常:找不到“IncrementController”。您需要调用“Get.put(IncrementController())”或“Get.lazyPut(()=>IncrementController())”
那么我对 getx 流程步骤有误吗? 让我们在下面检查我的代码:
主.dart
import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_application_1/controller.dart'; import 'package:get/get.dart'; void main() { runApp(GetMaterialApp( home: HomePage(), )); } class HomePage extends GetView<IncrementController> { final IncrementController _controller = Get.find<IncrementController>(); @override Widget build(BuildContext context) { //display increment with getx return Scaffold( appBar: AppBar( title: Text('GetX'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( 'You have pushed the button this many times:', ), Text( '${_controller.increment}', style: Theme.of(context).textTheme.headline4, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: _controller.incrementFun, tooltip: 'Increment', child: Icon(Icons.add), ), ); } }控制器
import 'package:get/get_rx/get_rx.dart'; import 'package:get/get_state_manager/src/rx_flutter/rx_getx_widget.dart'; import 'package:get/get_state_manager/src/simple/get_controllers.dart'; class IncrementController extends GetxController { //create increment with getx RxInt _increment = 0.obs; //get increment int get increment => _increment.value; //create increment functiion with getx void incrementFun() => _increment.value++; }捆绑
import 'package:flutter_application_1/controller.dart'; import 'package:get/get.dart'; class IncrementBinding implements Bindings { @override void dependencies() { // TODO: implement dependencies //create controller with getx Get.lazyPut<IncrementController>(() => IncrementController()); } }
【问题讨论】: