Flutter: передача данных между классами сбрасывает другое значение - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь передать значение sRegions из класса Regions в класс AddAd и передать значение sCategory из класса Categories в класс AddAd

, но когда я щелкаю и передаю это значение, оно сбрасывает другое значение до начального

Я хочу, чтобы значения внутри класса AddAd были разделены и не влияли друг на друга

Вот класс AddAd ():

class AddAd extends StatefulWidget {

  final String sRegion;
  final String sCategory;

  AddAd(this.sRegion,this.sCategory, {Key key}):super(key: key);
  @override
  _AddAdState createState() => _AddAdState();
}

ListTile(
  title: Text("Location"),
  subtitle: widget.sRegion == null ? Text("Where exactly") : Text(widget.sRegion),
),

ListTile(
  title: Text("Category"),
  subtitle: widget.sCategory == null ? Text("Department") : Text(widget.sCategory),
),

и вот как я передаю данные из класса Regions:

 child: Text(item),
 onPressed: () {
   sRegion = item;
   Navigator.push(context, new MaterialPageRoute(builder: (context) => AddAd(sRegion, sCategory)));
   print(sRegion);
 },

и вот как я передаю данные из класса Categories:


class _RegionsState extends State<Regions> {

  String sRegion;
  String sCategory;

  @override
  Widget build(BuildContext context) {
    return Directionality(
      textDirection: TextDirection.rtl,
      child: Scaffold(
        appBar: AppBar(
          title: Text("Location"),
          actions: <Widget>[
            FlatButton(
              child: Text('Cancel', style: TextStyle(color: Colors.white),),
              onPressed: (){
                Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=>AddAd(sRegion, sCategory)));
              },
            )
          ],
        ),
        body: SingleChildScrollView(
          child: Padding(
            padding: const EdgeInsets.only(top:15.0),
            child: Container(
              child: Column(
                children: <Widget>[
                  for(var item in regions) FlatButton(
                    child: Text(item), onPressed: (){
                      sRegion = item;
                      Navigator.push(context, new MaterialPageRoute(builder: (context) => AddAd(sRegion, sCategory)));
                      print(sRegion);
                  },),
                  Divider(),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
}

...