dart Flutter中的flutter_riverpod如何更方便地将ConsumerWidget转换为ConsumerStatefulWidget?

wbgh16ku  于 2022-12-25  发布在  Flutter
关注(0)|答案(1)|浏览(166)

我使用的是flutter_riverpod软件包。
我想把ConsumerWidget转换成ConsumerStatefulWidget
但是,我花了很多时间才这样做:
1.(代码)

class Widget extends ConsumerWidget {
  const Widget({super.key});
  @override
  Widget build(BuildContext context, WidgetRef ref) {
    return …;
  }
}

1.(删除ref

class Widget extends ConsumerWidget {
  const Widget({super.key});
  @override
  Widget build(BuildContext context) {
    return …;
  }
}

1.(将ConsumerWidget更改为StatelessWidget

class Widget extends StatelessWidget {
  const Widget({super.key});
  @override
  Widget build(BuildContext context) {
    return …;
  }
}

1.(由Convert to StatefulWidget操作转换)

class Widget extends StatefulWidget {
  const Widget({super.key});

  @override
  State<Widget> createState() => _WidgetState();
}

class _WidgetState extends State<Widget> {
  @override
  Widget build(BuildContext context) {
    return …;
  }
}

1.(添加Consumer字)

class Widget extends ConsumerStatefulWidget {
  const Widget({super.key});

  @override
  ConsumerState<Widget> createState() => _WidgetState();
}

class _WidgetState extends ConsumerState<Widget> {
  @override
  Widget build(BuildContext context) {
    return …;
  }
}

如你所见,我需要用5个步骤来做。有更快的方法吗?
如果您需要更多信息,请随时发表评论。
如何更容易地将ConsumerWidget转换为ConsumerStatefulWidget?我将感激任何帮助。提前感谢!

eit6fx6z

eit6fx6z1#

如果我的ConsumerWidget没有参数,

  • 1.创建一个同名的新ConsumerStatefulWidget
  • 2a.将ConsumerWidgetbuild方法的内容复制到新创建的小部件。
  • 2b.(如果ConsumerWidget中还有其他方法)将ConsumerWidget中的内容复制到新建的widget中,然后从build中删除ref
  • 3.删除ConsumerWidget

如果我的ConsumerWidget有参数,那么我的操作和您一样,因为否则我将不得不在小部件变量之前添加一个widget.

相关问题