Home > Blockchain >  GetX doesn't accept method parameters either
GetX doesn't accept method parameters either

Time:04-06

I cannot use the ".obs" property variables that I have created as parameters in my api service methods. and it gives the error The prefix 'coinTwo' can't be used here because it is shadowed by a local declaration. Try renaming either the prefix or the local declaration.

enter image description here

I wrote the problem in getx, but they did not understand the problem.

I would appreciate it if you could take a look at my issue on github. İssue link: text

I would appreciate it if you could take a look at my issue on github. İssue link: text

CodePudding user response:

in function declarations you just tell what type it is, and not actual values

So either do

getOrderbookData(String one, String two) async {
  var res = await api.fetchOrderBookData(one, two);
  purchase.value = res.result!.buy!;
  sales.value = res.result!.sell!;
}

or hardcode it to always use coinOne and coinTwo and give no parameters

getOrderbookData() async {
  var res = await api.fetchOrderBookData(coinOne.value, coinTwo.value);
  purchase.value = res.result!.buy!;
  sales.value = res.result!.sell!;
}

CodePudding user response:

Your problem is in the declaration of getOrderBookData

Instead of

getOrderBookData(coinOne.value, coinTwo.value) async {
  ...

you should either have

getOrderBookData() async {
  ...
  //Do stuff with coinOne.value, coinTwo.value
  ...

OR

getOrderBookData(String firstCoin, String secondCoin) async {
  coinOne.value = firstCoin;
  coinTwo.value = secondCoin;
...

Edit
Seeing your post on GetX's Github, it looks like you're missing some basic understanding on how functions and methods work.
The code you wrote is the equivalent of the following method signature :

getOrderBookData("aValue", "anotherValue") async {

and it doesn't makes any sense.

Your method's signature should only declare the parameters it's expecting and their type.
You can also define a default value for those parameters if needed.

getOrderBookData({String firstCoin = coinOne.value, String secondCoin = coinTwo.value}) async {

CodePudding user response:

Make these changes and the error will be gone. First, make a minor change to your getOrderBookData method:

void getOrderBookData() async {...}  // Don't pass any parameter here.

And then make a change to your onInit method too.

@override
void onInit() {
  getOrderBookData();
  super.onInit();
}
  • Related