我遇到以下错误“错误状态:调用关闭后无法添加新事件”当我第二次返回主页并访问 ProductsPage 时,
\n第一次产品也会加载\n但是当我尝试再次加载ProductsPage 时,会抛出此错误。
\nimport 'package:flutter/material.dart';\nimport 'package:flutter_bloc/flutter_bloc.dart';\nimport 'package:flutter_modular/flutter_modular.dart';\n\nimport '../../widgets/product_display.dart';\nimport '../../widgets/title_section.dart';\nimport '../home_page/components/button_menu.dart';\nimport 'bloc/products_bloc.dart';\nimport 'bloc/products_event.dart';\nimport 'bloc/products_state.dart';\n\nclass ProductsPage extends StatefulWidget {\n const ProductsPage({Key? key}) : super(key: key);\n\n @override\n State<ProductsPage> createState() => _ProductsPageState();\n}\n\nclass _ProductsPageState extends State<ProductsPage> {\n final bloc = Modular.get<ProductsBloc>();\n\n @override\n void initState() {\n super.initState();\n bloc.add(LoadProductsEvent());\n }\n\n @override\n void dispose() {\n super.dispose();\n bloc.close();\n \n }\n\n @override\n Widget build(BuildContext context) {\n return Scaffold(\n appBar: AppBar(\n title: const Text('Produtos'),\n ),\n body: SafeArea(\n child: SingleChildScrollView(\n child: Padding(\n padding: const EdgeInsets.all(10.0),\n child: …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据 Dart/Flutter 中的 PHP 代码生成会话代码:
private $length = 32;
substr(bin2hex(random_bytes($this->length), 0, $this->length);
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何在 dart 中创建这些 random_bytes,然后使用 DART 语言将它们转换为 bin2hex。
上面描述的这些函数来自 PHP(opencart 系统),我必须创建一个哈希来指定每个连接用户的会话。
此转换的预期结果类似于:
“004959d3386996b8f8b0e6180101059d”