我無法在我的 api 服務方法中使用我創建的“.obs”屬性變數作為引數。它給出了錯誤前綴'coinTwo'不能在這里使用,因為它被本地宣告所掩蓋。嘗試重命名前綴或本地宣告。

我在getx中寫了問題,但他們沒有理解問題。
如果您能在 github 上查看我的問題,我將不勝感激。問題鏈接:文本
如果您能在 github 上查看我的問題,我將不勝感激。問題鏈接:文本
uj5u.com熱心網友回復:
在函式宣告中你只是告訴它是什么型別,而不是實際值
所以要么做
getOrderbookData(String one, String two) async {
var res = await api.fetchOrderBookData(one, two);
purchase.value = res.result!.buy!;
sales.value = res.result!.sell!;
}
或對其進行硬編碼以始終使用 coinOne 和 coinTwo 并且不提供任何引數
getOrderbookData() async {
var res = await api.fetchOrderBookData(coinOne.value, coinTwo.value);
purchase.value = res.result!.buy!;
sales.value = res.result!.sell!;
}
uj5u.com熱心網友回復:
您的問題出在宣告中getOrderBookData
代替
getOrderBookData(coinOne.value, coinTwo.value) async {
...
你應該要么
getOrderBookData() async {
...
//Do stuff with coinOne.value, coinTwo.value
...
要么
getOrderBookData(String firstCoin, String secondCoin) async {
coinOne.value = firstCoin;
coinTwo.value = secondCoin;
...
編輯
看到您在 GetX 的 Github 上的帖子,您似乎對函式和方法的作業原理缺乏一些基本的了解。
您撰寫的代碼等效于以下方法簽名:
getOrderBookData("aValue", "anotherValue") async {
這沒有任何意義。
您的方法的簽名應該只宣告它所期望的引數及其型別。
如果需要,您還可以為這些引數定義默認值。
getOrderBookData({String firstCoin = coinOne.value, String secondCoin = coinTwo.value}) async {
uj5u.com熱心網友回復:
進行這些更改,錯誤就會消失。首先,對您的方法進行微小的更改getOrderBookData:
void getOrderBookData() async {...} // Don't pass any parameter here.
然后也改變你的onInit方法。
@override
void onInit() {
getOrderBookData();
super.onInit();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/456412.html
