我收到“可为空表达式”错误。问题出现在以下几行中:
left: isSideBarOpenedAsync.data ? 0 : 0,
right: isSideBarOpenedAsync.data ? 0 : screenWidth - 35,
Run Code Online (Sandbox Code Playgroud)
isSideBarOpenedAsync类型在哪里AsyncSnapshot<bool>
这是我收到的错误
可为空的表达式不能用作条件。
null在将其用作条件之前,请尝试检查该值是否存在。
这是完整的代码供参考
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:solaris/constants.dart';
import 'package:rxdart/rxdart.dart';
class SideBar extends StatefulWidget {
@override
_SideBarState createState() => _SideBarState();
}
class _SideBarState extends State<SideBar> with SingleTickerProviderStateMixin<SideBar>{
late AnimationController _animationController;
late StreamController<bool> isSidebarOpenedStreamController;
late Stream<bool> isSideBarOpenedStream;
late StreamSink<bool> isSideBarOpenedSink;
final _animationDuration = const Duration(milliseconds: 500);
@override
void initState(){
super.initState();
_animationController = AnimationController(vsync: this, duration: _animationDuration);
isSidebarOpenedStreamController = PublishSubject<bool>();
isSideBarOpenedStream …Run Code Online (Sandbox Code Playgroud) 我有一个User包含一个Purchase类的类。我想让它不可为空,但不是必需的。所以这意味着我需要设置一个默认值。
我在子类(购买)中没有必填字段,并提供了默认值。
\n当我运行 build_runner 时,我收到一条错误,指出默认值必须是文字。\n并且我知道默认值必须是常量。
\n[SEVERE] json_serializable:json_serializable on lib/domain/user/user.model.dart:\n\nError with `@JsonKey` on `purchase`. `defaultValue` is `_$_Purchase`, it must be a literal.\npackage:clean_simple_eats/domain/user/user.model.freezed.dart:323:18\n \xe2\x95\xb7\n323 \xe2\x94\x82 final Purchase purchase;\n \xe2\x94\x82 ^^^^^^^^\n \xe2\x95\xb5\nRun Code Online (Sandbox Code Playgroud)\n我意识到我可以使用 @JsonKey 创建自己的 toJson 和 fromJson,但我更愿意让 freeze 生成代码。有没有办法用最新版本的 freeze (v0.14.2) 来实现这一点?
\n用户模型文件:
\n[SEVERE] json_serializable:json_serializable on lib/domain/user/user.model.dart:\n\nError with `@JsonKey` on `purchase`. `defaultValue` is `_$_Purchase`, it must be a literal.\npackage:clean_simple_eats/domain/user/user.model.freezed.dart:323:18\n \xe2\x95\xb7\n323 \xe2\x94\x82 final Purchase purchase;\n \xe2\x94\x82 ^^^^^^^^\n \xe2\x95\xb5\nRun Code Online (Sandbox Code Playgroud)\n购买文件:
\nimport \'package:clean_simple_eats/features/purchase/domain/purchase.model.dart\';\nimport …Run Code Online (Sandbox Code Playgroud) 我目前有一个带有我AppBar和我的页面内容的背景的堆栈。
我Container在页面中央显示一个,与Positioned包含网格/列表视图的小部件一起定位。
@override
Widget build(BuildContext context) {
return Scaffold(
extendBodyBehindAppBar: true,
appBar: VehicleScreenAppBar(
title: title,
context: context,
),
body: LayoutBuilder(
builder: (contxt, vehicleListConstraints) {
return Stack(
overflow: Overflow.visible,
children: <Widget>[
AppBarBackDrop(constraints: vehicleListConstraints),
Positioned(
top: vehicleListConstraints.maxHeight * .15,
left: (vehicleListConstraints.maxWidth - vehicleListConstraints.maxWidth * .9) / 2,
child: Container(
color: Colors.red,
height: vehicleListConstraints.maxHeight * .6,
width: vehicleListConstraints.maxWidth * .9,
child: ListView.builder(
itemCount: 20,
itemBuilder: (context, i) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
height: 50, …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 Android studio 生成应用程序包(构建 -> 生成签名包/APK),但在构建包时遇到错误。
Error: Cannot run with sound null safety, because the following dependencies
don't support null safety
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以添加参数--no-sound-null-safety,类似于在命令行中执行的操作?
我正在为 flutter/dart 创建自定义片段。我的目标是提取文件名(TM_FILENAME_BASE)删除所有下划线并将其转换为 PascalCase(或camelCase)。
这是我迄今为止所学到的有关正则表达式和 vscode 片段的链接。 https://code.visualstudio.com/docs/editor/userdefinesnippets
我已经能够使用以下代码很好地删除下划线
${TM_FILENAME_BASE/[\\_]/ /}
Run Code Online (Sandbox Code Playgroud)
我什至可以全部大写
${TM_FILENAME_BASE/(.*)/${1:/upcase}/}
Run Code Online (Sandbox Code Playgroud)
然而,我似乎不能一次做两步。我不熟悉正则表达式,这只是我最近几天在摆弄它。
如果有人可以帮助程序员同事让编码变得更简单,我将不胜感激!
我希望“my_file_name”的输出为“MyFileName”。
我想加快 build_runner 所需的构建时间,并且我还想在build watch编辑没有任何要生成的文件的文件时防止运行时重新构建。
我知道这需要在build.yaml文件中进行编辑,但我无法让任何东西发挥作用。
这是我的构建文件
targets:
$default:
builders:
auto_route_generator:
generate_for:
include: [".route.dart"]
freezed:
generate_for:
include: [".model.dart"]
json_serializable:
generate_for:
include: [".model.dart"]
options:
explicit_to_json: true
include_if_null: false
Run Code Online (Sandbox Code Playgroud)
即使尝试添加enabled: false(这让我相信它会禁用该依赖项的构建),也不会执行任何操作并且文件会继续生成。
也许我只是误解了构建文件应该如何使用......?
我能找到的 Flutter 的 Add-to-App 的所有文档都演示了如何推送/继续/呈现新创建的 FlutterViewController。我需要将颤动视图添加到选项卡栏中的选项卡。我尝试将班级的超类更改为UIViewController有效FlutterViewController,但没有使用应用程序委托中创建的颤动引擎。此解决方案导致在启动屏幕中显示颤动视图之前,这是不希望的。
如何向 中添加颤动视图UIViewController?或者如何将引擎分配给FlutterViewController类内的引擎?