FormEditPageScopedWidget constructor

const FormEditPageScopedWidget({
  1. Key? key,
  2. required String editId,
})

Abstract class to implement the existing edit page of a form widget used to both add new and edit existing.

You must always pass editId to edit existing data.

Pass a class inheriting from FormScopedWidget to build.

新規追加と既存の編集を両立させるために利用するフォームウィジェットの既存編集ページを実装するための抽象クラス。

必ず既存のデータを編集するためのeditIdを渡す必要があります。

buildFormScopedWidgetを継承したクラスを渡してください。

@immutable
@PagePath("user/add")
class UserAddPage extends FormAddPageScopedWidget {
  const UserAddPage({
    super.key,
  });

  @pageRouteQuery
  static const query = _$UserAddPageQuery();

  @override
  FormScopedWidget build(BuildContext context, PageRef ref) =>
    const UserForm();
}

@immutable
@PagePath("user/{edit_id}/edit")
class UserEditPage extends FormEditPageScopedWidget {
  const UserEditPage({
    super.key,
    @PageParam("edit_id") required super.editId,
  });

  @pageRouteQuery
  static const query = _$UserEditPageQuery();

  @override
  FormScopedWidget build(BuildContext context, PageRef ref) =>
    const UserForm();
}

@immutable
class UserForm extends FormScopedWidget {
  const UserForm({super.key});

  @override
  Widget build(BuildContext context, FormRef ref) {
    return Scaffold(
      // Any view form
    );
  }
}

Implementation

const FormEditPageScopedWidget({
  super.key,
  required this.editId,
});