6
votes

Réagir: a attendu une affectation ou un appel de fonction et a vu à la place une expression d'expressions non inutilisées

J'utilise une bibliothèque tierce 'FoamTree' dans mon application react pour visualiser l'arborescence. Lorsque j'importe son fichier 'carrotsearch.foamtree.js' dans mon composant, il me donne cette erreur sur plusieurs lignes:

  this.kc = function (a, b) {
      if( D.V(b) || (n[a] = b, m(a)) ){
          return n[a];
      }
  };

Cela fonctionne bien en Javascript normal. Il donne des erreurs uniquement lorsqu'il est importé dans react Il y a de nombreuses lignes dans ce fichier qui me donnent cette erreur. Je partage peu d'entre eux:

this.kc = function (a, b) {
    D.V(b) || (n[a] = b, m(a));
    return n[a];
};
 this.kc = function (a, b) {
      D.V(b) || (n[a] = b, m(a));
      return n[a];
 };
for (e = 0; e < g; e++) {
       h = c[e].kd, m[h.index] = !0, 0 > r * (h.x - k.x) + s * (h.y - k.y) + l * (h.z - k.z) && a.d(b, h);
}
 function m(a) {
      var d = a.O,
          c = a.Sb[0].length - 1;
      a.Ib[c] && (d.setLineDash(a.Ib[c]), d.Uj = a.Ld[c]);
      d.miterLimit = a.Qd[c];
      d.lineWidth = a.Md[c];
      d.shadowBlur = a.ie[c];
      d.shadowOffsetX = a.je[c];
      d.shadowOffsetY = a.ke[c];
      d.font = a.Nc[c].replace("#SIZE#", a.hc[c].toString());

    }

Modifier: Quand je change ce bloc:

this.j = function (m, k) {
      var f = a[m];
      f || (f = [], a[m] = f);
      f.push(k);
    };

en ceci:

Expected an assignment or function call and instead saw an expression  no-unused-expressions

alors l'erreur a disparu

p>


4 commentaires

Pouvez-vous ajouter un codepen pour cela.


Cela n'a rien à voir avec React. En règle générale, je ne me soucie généralement pas de linter du code tiers. Vous pouvez créer un fichier .eslintignore pour désactiver le lintage dans des fichiers, répertoires et modèles globaux spécifiques.


@JoelCornett comment créer et ajouter .eslintignore dans ma structure de fichiers. S'il vous plaît aidez-moi à ce sujet


Voir ici: eslint.org/docs/user-guide/…


3 Réponses :


1
votes

C'est juste une erreur de peluche. Vous pouvez l'ignorer. L'erreur est sur cette ligne:

D.V(b) || (n[a] = b, m(a));

Comme vous pouvez le voir, c'est une expression ( || au milieu de deux expressions) et n'est pas une affectation ou un appel de fonction. Vous pouvez simplement l'ignorer ou la réécrire pour supprimer l'expression en tant qu'instruction et la remplacer par une condition if ou quelque chose de similaire (tout ce qui sert le même objectif).


0 commentaires

2
votes

De toute évidence, l'expression à l'origine du problème. Mais en regardant votre expression, je pense que vous voulez faire simplement comme:

/*eslint no-unused-expressions: [
  "error", { 
    "allowShortCircuit": true
  }]*/

Au lieu de:

 var f = a[m];
      f || (f = [], a[m] = f);

Quoi qu'il en soit, allowShortCircuit devrait résoudre votre problème:

a[m] = f || []

Pour une configuration plus approfondie, voir:

aucune expression non utilisée


4 commentaires

Je pense qu'il y a un problème dans le code du fichier. Cela fonctionne bien en javascript normal, il ne donne des erreurs que lorsque je l'importe dans react et maintenant, lorsque j'ajoute un retour à l'intérieur du bloc de fonction, cela ne me donne pas d'erreur.


Avez-vous changé la configuration eslint selon ma réponse?


oui votre code a supprimé l'erreur de cette ligne mais le truc 'eslint' n'a pas fonctionné


mais le truc 'eslint' n'a pas fonctionné - que voulez-vous dire?



19
votes

Le problème a été résolu en ajoutant ceci en haut du fichier:

/* eslint-disable */


1 commentaires

Vous devriez au moins le changer en / * eslint-disable no-unused-expressions * / ou ajouter // eslint-disable-next-line no-unused-expressions ci-dessus la ligne où cette erreur se produit à la place.