skip to Main Content

The argument type ‘String?’ can’t be assigned to the parameter type ‘String’.

Container(
              width: 54,
              height: 54,
              decoration:BoxDecoration(
                shape: BoxShape.circle,
                image: DecorationImage(
                  image: NetworkImage(
                    user.profilePhotoUrl,
                  ),
                ),
              ),
            ),

please helpmee

2

Answers


  1. Dart offers null safety to the users.

    For example when we declare String? name; default value of name is null and can be changed.

    But we cannot declare String name; you have to give value while declaring like String name = 'Funny Name'; ensuring that value of name can never be null.

    Here use ! mark after the variable to tell the compiler that value of user.profilePhotoUrl is not null like user.profilePhotoUrl!

    My suggestion is to use String intead of String? in that case you don’t need to use !

    Login or Signup to reply.
  2. we should always handle null value case first. Here if in case a the value of "profilePhotoUrl" is equal to null then we have handle it with this default link which is after ?? ‘any other link’.

    Container(
                  width: 54,
                  height: 54,
                  decoration:BoxDecoration(
                    shape: BoxShape.circle,
                    image: DecorationImage(
                      image: NetworkImage(
                        user.profilePhotoUrl ?? 'any other link',
                      ),
                    ),
                  ),
                ),
    

    Here is an example :
    In below example i haven’t provided any value to profilePhotoUrl and declared it as nullable & so when it execute it will get null but as we have handle it already using null operator.

    ??
    Called also null operator. This operator returns expression on its left, except if it is null, and if so, it returns right expression:

    import 'package:flutter/material.dart';
    
    const Color darkBlue = Color.fromARGB(255, 18, 32, 47);
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          theme: ThemeData.dark().copyWith(
            scaffoldBackgroundColor: darkBlue,
          ),
          debugShowCheckedModeBanner: false,
          home: Scaffold(
            body: Center(
              child: MyWidget(),
            ),
          ),
        );
      }
    }
    
    class MyWidget extends StatelessWidget {
      
      String? profilePhotoUrl;
      
      @override
      Widget build(BuildContext context) {
        return Container(
                  width: 350,
                  height: 450,
                  decoration:BoxDecoration(
                    shape: BoxShape.circle,
                    image: DecorationImage(
                      image: NetworkImage(
                        profilePhotoUrl ?? 'https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885__480.jpg',
                      ),
                    ),
                  ),
                );
      }
    }
    

    What are ??, ??=, ?., …? in Dart?
    https://jelenaaa.medium.com/what-are-in-dart-df1f11706dd6

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search