Code Monkey home page Code Monkey logo

30daysofflutter's People

Contributors

arps18 avatar iampawan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

30daysofflutter's Issues

Error: Expected a value of type 'String', but got one of type 'Null'

I am such error while running after encoding json file
Screenshot 2023-07-05 180551

please help

this is my code
class CatalogModel {
static List items = [
Item(
id: 1,
name: "Monkey D. Luffy",
desc: "KING OF THE PIRATES",
price: 999,
color: "#ed1111",
image:
"data:image/jpeg;base64,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",
)
];
}

class Item {
final int id;
final String name;
final String desc;
final num price;
final String color;
final String image;

Item(
{required this.id,
required this.name,
required this.desc,
required this.price,
required this.color,
required this.image});

factory Item.fromMap(Map<String, dynamic> map) {
return Item(
id: map["id"],
name: map["name"],
desc: map["desc"],
color: map["color"],
image: map["image"],
price: map["price"],
);
}
}

ISSUE IN "VxState.listen"

I am currently on chapter 25 of course 30days with flutter by mtechviral. My issue is as per your code, VxState.listen must work but to me its showing error.
The error is "The method 'listen' isn't defined for the type 'VxState'.
Try correcting the name to the name of an existing method, or defining a method named 'listen'."

Any help would be appreciated.

Day 12 : I'm not able to scroll down in the catalog app when we are adding 50 items

Day 12 : I'm not able to scroll down in the catalog app when we are adding 50 items
class HomePage extends StatelessWidget {
const HomePage({super.key});

@OverRide
Widget build(BuildContext context) {
// int days = 30;
// String name = "codepur";
final dummyList = List.generate(50, (index) => CatalogModel.items[0]);

return Scaffold(  
  appBar: AppBar(
    title: Text("Catalog App",
    ),
    
  ),
  body: Padding(
    padding: const EdgeInsets.all(16.0),
    child: ListView.builder(
      itemCount: dummyList.length,
      itemBuilder: (context, index) {
        return ItemWidget(
          item : dummyList[index],

Form Validation Error

After clicking Login button the screen is changing even if the text and password fields are empty

import 'package:first_app/utils/approutes.dart';
import 'package:flutter/material.dart';

class Login extends StatefulWidget {
  @override
  _LoginState createState() => _LoginState();
}

class _LoginState extends State<Login> {
  String name = "";
  bool changebtn = false;
  final _formkey = GlobalKey<FormState>();

  movetohome(BuildContext context) async {
    if (_formkey.currentState!.validate()) {
      setState(() {
        changebtn = true;
      });
    }
    // push to move to next route

    await Future.delayed(Duration(seconds: 1));
    await Navigator.pushNamed(context, Approutes.homeRoute);
    setState(() {
      changebtn = false;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Material(
        color: Colors.white,
        child: SingleChildScrollView(
          child: Form(
            key: _formkey,
            child: Column(
              children: [
                Image.asset(
                  "assets/images/top.png",
                  fit: BoxFit.cover,
                ),
                SizedBox(
                  height: 80.0,
                ),
                Text(
                  "Welcome $name",
                  style: TextStyle(fontWeight: FontWeight.bold, fontSize: 28),
                ),
                Padding(
                  padding: const EdgeInsets.symmetric(
                      vertical: 30.0, horizontal: 40.0),
                  child: Column(
                    children: [
                      TextFormField(
                        onChanged: (value) {
                          name = value;
                          setState(() {});
                        },
                        style: TextStyle(fontSize: 20),
                        decoration: InputDecoration(
                            hintText: "Enter username", labelText: "username"),
                        validator: (value) {
                          if (value!.isEmpty) {
                            return "Username cannot be empty";
                          }
                          return null;
                        },
                      ),
                      TextFormField(
                        style: TextStyle(fontSize: 20),
                        obscureText: true,
                        decoration: InputDecoration(
                            hintText: "Enter password", labelText: "password"),
                        validator: (value) {
                          if (value!.isEmpty) {
                            return "Password cannot be empty";
                          } else if (value.length < 6) {
                            return "Password length should be atleast 6";
                          }
                          return null;
                        },
                      ),
                      SizedBox(
                        height: 50.0,
                      ),
                      Material(
                        color: Colors.pinkAccent,
                        borderRadius: BorderRadius.circular(changebtn ? 60 : 8),
                        child: InkWell(
                          splashColor: Colors.yellow,
                          onTap: () => movetohome(context),
                          child: AnimatedContainer(
                            duration: Duration(seconds: 1),
                            width: changebtn ? 60 : 160,
                            height: 60,
                            // styling

                            alignment: Alignment.center,
                            child: changebtn
                                ? Icon(Icons.done)
                                : Text(
                                    "Login",
                                    style: TextStyle(
                                        fontSize: 25,
                                        color: Colors.white,
                                        fontWeight: FontWeight.bold),
                                  ),
                          ),
                        ),
                      ),
                    ],
                  ),
                ),
              ],
            ),
          ),
        ));
  }
}

Encountered some issues

Encountered following bugs and applied undermentioned fixes

items were not initialized -> initialized as empty list
static List<Item> items = List.empty();
required field missing in Item() constructor -> added required keyword
Item({required this.id, ....});
Null safety found missing in copyWith()
Item copyWith({ String? id ...
In factory fromMap() the line which checks map nullability throwing error -> commented
//if (map == null) return null;
In home.dart list was not mapping to model -> distributed into two assignments
List<Item> list = List.from(productsData)
.map<Item>((item) => Item.fromMap(item))
.toList();
CatalogModel.items = list;

Error unexpected null value

when I use if statement to validate talking about this if statement:
movetoHome(BuildContext context) async { if (_formKey.currentState!.validate()) { setState(() { changebutton = true; }); await Future.delayed(Duration(seconds: 1)); await Navigator.pushNamed(context, Myroutes.homeRoute); setState(() { changebutton = false; }); } }

    1. If I run using f5 it takes me to breaking point in feedback.dart at line 107 "return Future.value();"
  1. if I run using terminal it gives me this error:
    Error: Unexpected null value.
    at Object.throw_ [as throw] (http://localhost:53848/dart_sdk.js:5348:11)
    at Object.nullCheck (http://localhost:53848/dart_sdk.js:5681:30)
    at login_page._LoginPageState.new.movetoHome (http://localhost:53848/packages/learning/pages/login_page.dart.lib.js:644:28)
    at movetoHome.next ()
    at runBody (http://localhost:53848/dart_sdk.js:39250:34)
    at Object._async [as async] (http://localhost:53848/dart_sdk.js:39281:7)
    at login_page._LoginPageState.new.movetoHome (http://localhost:53848/packages/learning/pages/login_page.dart.lib.js:643:20)
    at http://localhost:53848/packages/learning/pages/login_page.dart.lib.js:677:569
    at ink_well._InkResponseState.new.[_handleTap] (http://localhost:53848/packages/flutter/src/material/icon_button.dart.lib.js:50393:31)
    at tap.TapGestureRecognizer.new.invokeCallback (http://localhost:53848/packages/flutter/src/gestures/recognizer.dart.lib.js:194:18)
    at tap.TapGestureRecognizer.new.handleTapUp (http://localhost:53848/packages/flutter/src/gestures/tap.dart.lib.js:408:40)
    at tap.TapGestureRecognizer.new.[_checkUp] (http://localhost:53848/packages/flutter/src/gestures/tap.dart.lib.js:214:12)
    at tap.TapGestureRecognizer.new.handlePrimaryPointer (http://localhost:53848/packages/flutter/src/gestures/tap.dart.lib.js:160:23)
    at tap.TapGestureRecognizer.new.handleEvent (http://localhost:53848/packages/flutter/src/gestures/recognizer.dart.lib.js:449:16)
    at pointer_router.PointerRouter.new.[_dispatch] (http://localhost:53848/packages/flutter/src/gestures/pointer_router.dart.lib.js:93:9)
    at http://localhost:53848/packages/flutter/src/gestures/pointer_router.dart.lib.js:128:26
    at LinkedMap.new.forEach (http://localhost:53848/dart_sdk.js:26346:11)
    at pointer_router.PointerRouter.new.[_dispatchEventToRoutes]
    (http://localhost:53848/packages/flutter/src/gestures/pointer_router.dart.lib.js:125:29)
    at pointer_router.PointerRouter.new.route (http://localhost:53848/packages/flutter/src/gestures/pointer_router.dart.lib.js:117:37)
    at binding$5.WidgetsFlutterBinding.new.handleEvent (http://localhost:53848/packages/flutter/src/gestures/binding.dart.lib.js:389:26)
    at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:53848/packages/flutter/src/gestures/binding.dart.lib.js:372:24)
    at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:53848/packages/flutter/src/rendering/layer.dart.lib.js:5376:13)
    at binding$5.WidgetsFlutterBinding.new.[_handlePointerEventImmediately]
    (http://localhost:53848/packages/flutter/src/gestures/binding.dart.lib.js:343:14)
    at binding$5.WidgetsFlutterBinding.new.handlePointerEvent
    (http://localhost:53848/packages/flutter/src/gestures/binding.dart.lib.js:316:43)
    at binding$5.WidgetsFlutterBinding.new.[_flushPointerEventQueue]
    (http://localhost:53848/packages/flutter/src/gestures/binding.dart.lib.js:305:14)
    at binding$5.WidgetsFlutterBinding.new.[_handlePointerDataPacket]
    (http://localhost:53848/packages/flutter/src/gestures/binding.dart.lib.js:295:65)
    at Object.invoke1 (http://localhost:53848/dart_sdk.js:186355:7)
    at _engine.EnginePlatformDispatcher..invokeOnPointerDataPacket (http://localhost:53848/dart_sdk.js:166281:15)
    at _engine.PointerBinding.
    .[_onPointerData] (http://localhost:53848/dart_sdk.js:166941:49)
    at http://localhost:53848/dart_sdk.js:167399:28
    at http://localhost:53848/dart_sdk.js:167352:16
    at http://localhost:53848/dart_sdk.js:167045:11

items are not removing from cart

onPressed: () {
_cart.remove(_cart.items[index]) ;
setState() {} ;
},
g a
// this code is being applied but not removing the items from cart

if we have list of two pages then add to favorite not working

Hello Pawan,

I know this is not an issue, but I need your help, if we have a list of items of 2-3 pages with different JSON data, how we can manage the code of add to favourite, it will work with one list(one JSON data), when we go to another page with another JSON data it's not working. It's working one at a time with the list. Can you please suggest the code, how we can do this.

Question

Hi, I wanna ask can we do like that the items which get added to the cart should still be visible in the cart after reopening the app with shared preferences ?

Issues with VxBuilder

VxBuilder(
            mutations: {RemoveMutation},
            builder: (context) {
              return "\$${_cart.totalPrice}"
                  .text
                  .xl5
                  .color(context.theme.accentColor)
                  .make();
            },
)

Screenshot 2022-05-24 083155
)

error messege: The argument type 'Widget Function(BuildContext)' can't be assigned to the parameter type 'Widget Function(BuildContext, dynamic, VxStatus?)'.dartargument_type_not_assignable

Integration_test issue

In integration_test,inside app_test.dart it is showing the function run isn't defined....

That's why the system can't debug the app......

please suggest any solution

The function 'run' isn't defined.
Try importing the library that defines 'run', correcting the name to the name of an existing function, or defining a function named 'run'.

After change focus , Shortcuts keys are not working again

After change focus , Shortcuts keys are not working again.

For example :
Suppose that If we have TextField in the same screen and focus on the textField (or remove focus from the textField after get once focused on it) and using the same shortcut key for the same. Shortcut keys are not working again.

Day 17

On line number 110: catalog.desc.text.textStyle(context.captionStyle).make(),

Got this issue: The argument type 'TextStyle?' can't be assigned to the parameter type 'TextStyle'.

I tried and fixed by:
catalog.desc.text.caption(context).make(),

Please review this also.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.