Le problème est dans le tableau d'objets filter(), je dois vérifier si l'actuelle index(object) du tableau a une propriété avec la valeur isTransffered: false.

Voici comment j'utilise la fonction de filtre :

let filteredResults = allResults

// isTransferred --> coming from state and have value "false"
if (isTransferred && isTransferred !== 'all') {
  filteredResults = filteredResults.filter(
    res => res.isTransfer === isTransferred
  )
}

filteredResults est un tableau d'objets - voici le premier index du tableau :

0:
 accountNumber: "8787986"
 isTransfer: true
 jurisdiction: "AK"
 lineOfBusiness: "wc"

Je dois vérifier si isTransfer est faux.

Merci d'avance.

0
Mark James 18 mars 2019 à 13:46

2 réponses

Meilleure réponse

Le problème est votre état si

if (isTransferred && isTransferred !== 'all') {
  // this will not be executed if isTransferred is false
  filteredResults = filteredResults.filter(
    res => res.isTransfer === isTransferred
  )
}

Écrivez-le simplement comme

if (isTransferred !== 'all') {
  filteredResults = filteredResults.filter(
    res => res.isTransfer === isTransferred
  )
}
0
Shubham Khatri 18 mars 2019 à 10:53

Si à l'intérieur de filteredResults vous devez avoir tous les objets ayant la propriété isTransfer === false, alors vous avez un problème dans le rappel filter().

Si vous saisissez l'instruction IF, alors isTransferred est égal à true. Cependant, dans le rappel filter(), vous écrivez : res => res.isTransfer === isTransferred, ce qui, dans le langage courant, signifie "prendre les entrées qui ont la propriété isTransfer égale à isTransferred".
Cependant, puisque nous sommes dans le IF, isTransferred est égal à true ! Vous ne faites donc que prendre les entrées dont la propriété isTrasnfer est égale à true.

Solution : vous devez écrire res => res.isTransfer !== isTransferred, notre plus simple res => res.isTransfer === false

0
Jolly 18 mars 2019 à 10:54