IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

ERREUR : Object is possibly 'null'.ts(2531)


Sujet :

Angular

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut ERREUR : Object is possibly 'null'.ts(2531)
    Bonjour,

    Je rencontre cette erreur dans un controller qui gère un formulaire quand je récupère la valeur de chaque champ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    export class FormBookComponent implements OnInit {
      bookForm!: FormGroup;
     
      constructor(
        private formBuilder: FormBuilder,
        private bookService: BookService,
        private router: Router) { }
     
      ngOnInit(): void {
        this.initFormBook();
      }
     
      initFormBook() {
        this.bookForm = this.formBuilder.group({
            title: ['', Validators.required],
            author: ['', Validators.required]
        })
      }
     
      onSubmitBookForm() {
    //erreur ici: Object is possibly 'null'.ts(2531) sur const title et const author
        const title= this.bookForm.get('title').value;
        const author = this.bookForm.get('author').value;
     
    ..........
    }
    Je ne comprends pas pourquoi je dois mettre aussi l'opérateur d'assetion "!" non null systématiquement sur toutes les variables de classes (ici "bookForm") alors qu'auparavant je n'avais pas besoin de faire ça. De plus je suppose que ça n'est pas très recommandé en cas de nullité justement

    Merci

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    enlève le : !


    il faut toujours déclarer: ReactiveFormsModule, dans le module du composant
    ou s'il n'y en a pas, dans app.module

  3. #3
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut
    Merci pour ta réponse

    Le ReactiveFormModule est bien déclaré dans app.module dans mon cas.
    Par contre, si j'enlève le "!" angular me demande d'initialiser ce que je n'avais pas à faire avant, il faut dire que je travaillais sur une vieille version d'angular (6)

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Par défaut
    supprime le dossier node_module
    npm i

  5. #5
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut
    Salut,

    J'ai supprimé le dossier mais rien de concluant j'ai toujours le :

    Property 'bookForm' has no initializer and is not definitely assigned in the constructor.ts(2564)

  6. #6
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    (1) et avec : this.initFormBook(); dans le constructor ?

    (2)
    c de l'angular 6 ?

    (3)
    c'est bien : @angular/forms
    import { ReactiveFormsModule } from '@angular/forms';

    (4)
    sinon essaye le meme code dans un autre composant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 28/06/2012, 14h34
  2. Erreur "The given object has a null identifier"
    Par Maram mar dans le forum Hibernate
    Réponses: 1
    Dernier message: 30/08/2011, 13h31
  3. [XCode] Objective C : pathForResource = NULL !
    Par FabriceMAUPIN dans le forum XCode
    Réponses: 7
    Dernier message: 05/07/2011, 10h59
  4. Mon object est toujours null
    Par rahmoucha dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 20/12/2010, 14h25
  5. [AC-2007] Requête multicritère dont un critère possible null
    Par alfhcg dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/12/2010, 23h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo