我正在使用Getx进行州管理。当我使用getx方法时,会得到一个错误。
我正在为Getx类使用以下代码:
import 'package:flutter/material.dart';
import 'package:get/get.dart';
// Bu alan benim sayac değişkenlerimi Getx yardımı ile tuttuğum classdır.farkllı değişken classları yazılabilir.
class SayacController extends GetxController {
//5 benim değikenimin ilk değeridir.
var _sayac = 5.obs;
//get ile çeker, set ile veriyi atarım.
get sayac => _sayac.value;
set sayac(yeniDeger) => _sayac.value = yeniDeger;
//burada 2 tane fonksiyon belirledim. çeşitli fonksiyonlar yazılabilir.
void arttir() {
sayac = sayac + 1;
}
void azalt() {
sayac = sayac - 1;
}
}我正在使用此代码作为主页。
import 'package:flutter/material.dart';
import 'package:flutter_ilk_proje/sayac_controllerEx.dart';
import 'package:get/get.dart';
import 'package:http/http.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
//Burada controller değşkenlerini vs getiriyorum.
SayacController _controller = Get.put(SayacController());
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Material App',
home: Scaffold(
appBar: AppBar(
title: Text('Material App Bar'),
),
body: Center(
child: InkWell(
onTap: () {
_controller.sayac("25");
},
child: Container(
child: Obx(
() => Text(_controller.sayac.toString()),
)),
),
),
),
);
}
}我得到了这个错误
Exception has occurred.
NoSuchMethodError (NoSuchMethodError: Class 'int' has no instance method 'call'.
Receiver: 5
Tried calling: call("25"))关于密码的截图。
发布于 2022-05-09 16:14:03
很难猜出你的意思。
这一行:_controller.sayac("25");可能是_controller.sayac = 25;吗?
总之,_controller.sayac("25");显然是错的。sayac是一个属性。你可以读它,你可以写它,你不能这样叫它。
话虽如此,你似乎只想勉强度日。不要这样做。Dart是一种非常好的语言,如果你使用它,它将一直帮助你。(你关掉你的了吗?)现在应该有一个默认的.)让它来解释为什么你所做的每件事都需要详细和明确,语言会尽可能地支持你。如果您使用了Dart的功能,那么您得到的这个错误将是编译时错误。
https://stackoverflow.com/questions/72174900
复制相似问题