我是 GetX 框架的新手,我正在嘗試使用 Elevated 按鈕從視圖中呼叫控制器類函式,但這會導致錯誤。
沒有為型別“Type”定義方法“getContacts”。
這是我的控制器類
class ContactController extends GetxController {
var id;
@override
void onInit() async {
SharedPreferences preferences = await SharedPreferences.getInstance();
id = preferences.getString('id');
print(id);
}
getContact() async {
// SERVER API URL
Uri url = Uri.parse('http://localhost:8000/get-contacts');
// Store all data with Param Name.
var data = {'sender': id};
//json encode
String? body = json.encode(data);
// Starting Web API Call.
var response = await http.post(url,
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: body);
// Getting Server response into variable.
var contact = jsonDecode(response.body);
// If Web call Success than Hide the CircularProgressIndicator.
if (response.statusCode == 200) {
print(contact);
} else {
print("error");
}
}
}
這是我的視圖類
class Contacts extends StatefulWidget {
const Contacts({Key? key}) : super(key: key);
@override
State<Contacts> createState() => _ContactsState();
}
class _ContactsState extends State<Contacts> {
final contactController = Get.put((ContactController));
@override
Widget build(BuildContext context) {
return Container(
child: ElevatedButton(
onPressed:()=>contactController.getContacts(),
child: Text("GET CONTACT")));
}
}
我無法呼叫提升按鈕內的函式
onPressed:()=>contactController.getContacts(),
任何人都可以幫我解決這個問題
uj5u.com熱心網友回復:
嘗試改變它
final contactController = Get.put(ContactController());
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/465085.html
