Я впервые использую flutter и stackoverflow, прости меня за ошибки. У меня есть глобальные переменные в файле global.dart. В моем основном я хочу получить доступ и редактировать переменную, передавая ей значение

Global.dart
String nome_impianto1 = "IMPIANTO 1";
String nome_impianto2 = "IMPIANTO 2";
String nome_impianto3 = "IMPIANTO 3";
String nome_impianto4 = "IMPIANTO 4";

main.dart
import 'package:services/global.dart' as globals;
globals.nome_impianto1 = usrcontroller_ovrelay_impianto.text;  //so it works.

Как я могу передать значение, которое я хочу изменить?

globals.nome_impianto{$'1'} = usrcontroller_ovrelay_impianto.text //I know it doesn't work, and just to get the idea;

Спасибо всем С уважением Андреа

0
Andrea_Fox 30 Апр 2020 в 12:55

2 ответа

Лучший ответ
  1. Избегайте использования глобальных переменных в флаттере. Если вы управляете состоянием в глобальном масштабе, используйте StatefulWidget и даже лучше начните использовать провайдера или даже более продвинутый блок.

  2. На ваш вопрос, если вы хотите получить доступ к ним глобально, лучше использовать Map

//  Global.dart
  Map<String, String> globals = {
    "nome_impianto1": "IMPIANTO 1",
    "nome_impianto2": "IMPIANTO 2",
    "nome_impianto3": "IMPIANTO 3",
    "nome_impianto4": "IMPIANTO 4",
  };

// main.dart
  int index = 1;
  globals["nome_impianto$index"] = usrcontroller_ovrelay_impianto.text;
  1. флаттер не имеет отражения https://stackoverflow.com/a/49871692/8608146
0
Phani Rithvij 30 Апр 2020 в 10:11

Добавьте это к любой из ваших функций:

 setState((){
      globals.nome_impianto1 = usrcontroller_ovrelay_impianto.text;
    });
0
Z. Cajurao 30 Апр 2020 в 10:02