android - Flutter可重用表单小部件

标签 android firebase flutter dart

我已经使用方法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);
      }
    }
  }
}

最佳答案

您可以执行以下操作:

  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);
      }
    }
  }

关于android - Flutter可重用表单小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61279620/

相关文章:

android - 为什么在尝试访问常量值时存在 Unresolved 引用?

flutter - 获取 TextFormField 的 InputDecoration 标签的默认主题

flutter - 堆栈按预期工作 | z-index (CSS) 等效

java - 如何在 Android Studio Java 中将数组上传到 Firestore 数据

android - 如何在 Android 的操作菜单栏中添加新项目?

node.js - 如何使用云功能正确初始化 Firebase 功能测试?

firebase - 如何读取 map 中的 firestore 值?

android - 在您的项目中找到 Firebase Unity Android : No google-services. json 文件

flutter - 如何在 DropdownMenuItem 上使用 onClick 监听器

java - Android 自定义 ListView 不使用 Volley 构建