Многоразовый виджет флаттера - PullRequest
0 голосов
/ 17 апреля 2020

Я реализовал класс с помощью метода addTicket (). Когда я снова использую этот класс, я хочу изменить имя «db.collection» и «Navigator» в соответствии с соответствующей страницей в моем приложении. Так как я могу это сделать?

class AddNewTicket extends StatefulWidget {  
  @override
  _AddNewTicketState createState() => _AddNewTicketState();
}


class _AddNewTicketState extends State<AddNewTicket> {

  addTicket() async {
    if (_formKey.currentState.validate()) {
      _formKey.currentState.save();
      try{
        DocumentReference ref = await db.collection('CostalLineTicketDetails').
        document(ticketCato).collection("Tickets").add();
        setState(() => id = ref.documentID);
        Navigator.push(context, new MaterialPageRoute(builder: (context) => CostalLine()));
      }catch(e){
        print(e);
      }
    }
  }
}

1 Ответ

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

Вы можете сделать следующее:

  addTicket(String collectionName, Widget widgetPage) async {
    if (_formKey.currentState.validate()) {
      _formKey.currentState.save();
      try{
        DocumentReference ref = await db.collection(collectionName).
        document(ticketCato).collection("Tickets").add();
        setState(() => id = ref.documentID);
        Navigator.push(context, new MaterialPageRoute(builder: (context) => widgetPage));
      }catch(e){
        print(e);
      }
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...