小编Mar*_*ula的帖子

Flutter/Dart:子类冻结数据类

我正在使用以下插件:https : //pub.dev/packages/freezed

我想子类化冻结的数据类以在我的数据层中提供附加功能。所以我有我的数据类,它看起来像:

import 'dart:ui';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'card.freezed.dart';

@freezed
abstract class Card with _$Card {
  factory Card({String text, Color color, List<String> categories}) = _Card;
}
Run Code Online (Sandbox Code Playgroud)

现在我想将此 Card 类作为我的 CardModel 的超类,以便 CardModel 可以访问相同的字段、copyWith 方法、值相等......但我不知道如何去做。我正在尝试这样的事情:

import 'package:flutter/widgets.dart';
import 'package:growthdeck/features/card_deck/domain/entities/card.dart';

import '../../domain/entities/card.dart';

abstract class CardModel extends Card {
  factory CardModel.fromMap(Map<String, dynamic> card) => Card(
        text: card["text"],
        color: Color(int.parse(card['color'])),
        categories: card['categories'] as List<String>,
      );
}
Run Code Online (Sandbox Code Playgroud)

这会引发以下错误:

package:growthdeck/features/card_deck/data/models/card_model.dart 11:9  new CardModel.fromMap
test/features/card_deck/data/models/card_model_test.dart 13:23          main.<fn>

type '_$_Card' is not a subtype of type …
Run Code Online (Sandbox Code Playgroud)

dart flutter clean-architecture

10
推荐指数
1
解决办法
1740
查看次数

Flutter GetIt 插件 - GetIt 中未注册类型 xxx

我按照示例项目中所示设置了所有内容:

import 'package:get_it/get_it.dart';
import 'package:places/services/authService.dart';

final locator = GetIt.instance;

void setupLocator() {
  locator.registerSingleton<AuthService>(AuthService());
  print("registered");
}
Run Code Online (Sandbox Code Playgroud)

在主文件中调用

void main() {
  setupLocator();
  runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)

我有一些检查定位器也正确返回我的 AuthService

class AuthGuardView extends StatefulWidget {
  AuthGuardView({Key key}) : super(key: key);

  @override
  _AuthGuardViewState createState() => _AuthGuardViewState();
}

class _AuthGuardViewState extends State<AuthGuardView> {
  @override
  Widget build(BuildContext context) {
    return ViewModelProvider<AuthGuardViewModel>.withConsumer(
      viewModel: AuthGuardViewModel(),
      onModelReady: (model) => model.initialise(),
      builder: (context, model, child) => model.isLoggedIn
          ? Container(
              color: Colors.white,
              child: Text("Logged In"),
            )
          : SignUpView(),
    );
  }
}


class AuthGuardViewModel extends …
Run Code Online (Sandbox Code Playgroud)

state dart flutter

3
推荐指数
2
解决办法
6863
查看次数

IOS 初始屏幕正确渲染,然后元素跳转到顶部

所以我有以下启动画面:

在此输入图像描述

正常加载,但随后跳转到以下内容:

在此输入图像描述

我的约束如下:S 所以我认为我的元素受到了正确的约束,并且在检查 xcode 中的不同设备时一切看起来都不错。但是,一旦应用程序启动,它就会正确加载,但在加载下一个视图之前,所有内容都会跳到顶部。

<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina3_5" orientation="portrait" appearance="light"/>
<dependencies>
    <deployment identifier="iOS"/>
    <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
    <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
    <!--View Controller-->
    <scene sceneID="EHf-IW-A2E">
        <objects>
            <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                <layoutGuides>
                    <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
                    <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
                </layoutGuides>
                <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                    <rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                    <subviews>
                        <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleAspectFill" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
                            <rect …
Run Code Online (Sandbox Code Playgroud)

splash-screen storyboard ios xcode-storyboard swift

3
推荐指数
1
解决办法
1208
查看次数