VB10 / flutter-architecture-template

Flutter Architecture Complete App
https://vb10.dev/#/
Apache License 2.0
650 stars 130 forks source link

ViewModel null geliyor #2

Closed serkanicer closed 4 years ago

serkanicer commented 4 years ago

Projede TestView çalıştırdığımda ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════ I/flutter (11095): The following _TypeError was thrown building TestView(state: _TestViewState#52d55): I/flutter (11095): type '(TestViewModel) => Null' is not a subtype of type '(Store) => dynamic' Hatası alıyorum. BaseView InıtState e kadar gidiyor fakat ViewModel null geliyor View'a ve hata veriyor.

Deneyen var mı ?

nurettinbozak commented 4 years ago

Aynen hocam bende de aynı durum var.

flutter: The following _TypeError was thrown building HomeView(state: _HomeViewState#70896): 2020-06-30 00:50:55.989657+0300 Runner[54619:674889] flutter: type '(HomeViewModel) => Null' is not a subtype of type '(Store) => dynamic'

serkanicer commented 4 years ago

Ben şimdilik sorunu şöyle aştım Base bir stateless widget oluşturdum. View leri ondan türetiyorum. Mobx zaten state olan kısmı çözüyor. Veli de bahsetmişti stateless veya statefull olması yaklaşımla alakalı tercih meselesi diye :) Base widget dart dosyası şu şekilde denemek istersen.

import 'package:flutter/material.dart'; import 'package:mobx/mobx.dart'; import '../../../core/extension/string_extension.dart';

abstract class BaseStatelessWidget extends StatelessWidget {

double dynamicHeight({@required BuildContext context, @required double val}) { return MediaQuery.of(context).size.height * val; }

double dynamicWidth({@required BuildContext context, @required double val}) { return MediaQuery.of(context).size.width * val; }

TextTheme currentTextTheme(BuildContext context) => Theme.of(context).textTheme; TextTheme currentPrimaryTextTheme(BuildContext context) => Theme.of(context).primaryTextTheme;

ColorScheme colorScheme(BuildContext context) => Theme.of(context).colorScheme; }

nurettinbozak commented 4 years ago

Hocam ben şunu anlamadım, sen basestate kullanmadın mı yani? theme ayarları ve dynamicHeight falan basestate de ama sen basewidget içine almışsın ondan türetmişsin, state de devre dışımı kaldı burda?

serkanicer commented 4 years ago

Aynen onu kullanmıyorum, kendi ekranlarımı yukarıda yazdığım BaseStatelessWidget den turetiyorum. Bu ekranların içerisinde ViewModelim var gene, state ordan çalışıyor zaten, devre dışı değil yani.

VB10 commented 4 years ago

selamlar hatayi yonu gordum cozuldumu repoyu guncelledim bir daha bakarsaniz sorun yok suan o hata ozellikle

nurettinbozak commented 4 years ago

teşekkürler Veli, ben mbox kaldırdım provider kullandım ve baseviewmodeli ChangeNotifier ile extends ettim. Bu projeye hive dbsinide ekleyerek genişletebilir miyiz ne dersin?

VB10 commented 4 years ago

belki bir farkli branachte core altarnetif olarak changenotifier ile goturebiliriz neden olmasin, Hive db hic kullanmadim ama okudugum kadariyla sqlite ilede yaparsak olur gibi ne dersin