Во флаттере как получить значение из функции? - PullRequest
0 голосов
/ 23 апреля 2020

Я новичок ie во флаттере. Мне нужно знать одну вещь. Я вычисляю какое-то значение в своей функции. Мне нужно показать это в текстовом виджете. Как это возможно?

Это мои функции

  final List _questions = [
    {'would': 'Coffe1', 'rather': 'Tea', 'wouldclick': '1', 'ratherclick':'2'},
    {'would': 'Blue', 'rather': 'Red', 'wouldclick': '2', 'ratherclick':'2'},
    {'would': 'Green', 'rather': 'Yellow', 'wouldclick': '3', 'ratherclick':'2'},
  ];

  int index = 0;
  void percentage1Calculate(){
     final percentage1 = _questions[index]['wouldclick'] / _questions[index]['wouldclick'] + _questions[index]['ratherclick'] * 100;
  }
  void percentage2Calculate(){
     final percentage2 = _questions[index]['ratherclick'] / _questions[index]['wouldclick'] + _questions[index]['ratherclick'] * 100;
  }

И нужно показать в столбце

Column(
     children: <Widget>[
       Text(percentage1),
       Text(percentage2),
    ]
)

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Ваши числа выглядят так, как будто они на самом деле String типов, попробуйте сначала преобразовать их, прежде чем произойдет математика:

double percentage1Calculate(){
     int wouldClick = int.parse(_questions[index]['wouldclick']);
     int ratherClick = int.parse(_questions[index]['ratherclick']);
     double percentage1 = wouldClick / wouldClick + ratherClick * 100;
     return percentage1;
}

Тогда вы сможете установить переменную следующим образом:

Text('${percentage1Calculate()}');

Если вы сделаете метод get, вы можете использовать его так:

double get percentage1Calculate {
     int wouldClick = int.parse(_questions[index]['wouldclick']);
     int ratherClick = int.parse(_questions[index]['ratherclick']);
     double percentage1 = wouldClick / wouldClick + ratherClick * 100;
     return percentage1;
}
Text('$percentage1Calculate');
0 голосов
/ 23 апреля 2020

Вы можете вернуть значение, вычисленное в функции, и передать его в виджет в качестве значения.

Допустим, ваша функция возвращает int,

int percentage1Calculate(){
  final percentage1 = _questions[index]['wouldclick'] / _questions[index] ['wouldclick'] + _questions[index]['ratherclick'] * 100;
  return percentage1;
}

вызывает вышеуказанную функцию и сохраняет ее в переменной,

int store = percentage1Calculate();

использует ее в виджете, как показано ниже,

Text(data: $store);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...