Toute aide?
Disons que j'ai cet éventail d'objets. Je travaille avec un composant de temps de réacteur simple pour afficher "HR" ou "HRS".
Comment vérifier si la valeur "data.lastsen" est supérieure à 1?
Donc, je peux afficher comme suit ce "1 hr" ou "2 heures" p> Je sais que je sais que, d'ajouter et d'afficher de manière conditionnelle "HR" ou "HRS" à chaque objet avec laquelle j'ai des problèmes. const User = ({ user }) => {
return (
<Col>
<Seen user={user} />
</Col>
);
};
const Seen = ({ user }) => {
return <React.Fragment> {user.map((seen) =>
seen.lastseen == 1 ? seen.lastseen + "hr" : seen.lastseen + "hrs"
)}</React.Fragment>;
};
5 Réponses :
Étant donné que vous ne pouvez pas utiliser si sinon dans JSX utilise des opérateurs ternaires tels que ceci à la place:
const mapData = data.map(seen => (seen.lastseen == 1 ? 'hr': 'hrs'));
Merci, je pense que cela va faire. Mais j'ai eu une erreur "data.map n'est pas une fonction" lorsque j'ai ajouté ce code à mon fichier. Je pense que parce que j'ai également ajouté à l'intérieur de la carte. Est-ce?
Si les données sont définies ci-dessus MapData, cela devrait fonctionner. Parce que vous rendant un tableau.
Bonjour, je mettais à jour mon code et j'ai appliqué le code que vous avez suggéré. Quel est le problème avec ma mise en œuvre de code? Toujours j'ai eu une erreur "TypeError: utilisateur.map n'est pas une fonction"
for(var i=0; i<data.length; i++) {
if(data[i].lastseen === 1) {
// display 1 + 'hr'
} else if(data[i].lastseen > 1) {
//diplay data[i].lastseen + 'hrs'
}
}
Voici ma solution:
p>
import React from "react";
class App extends React.Component {
render() {
const data = [
{
id: 1,
name: "lorem A",
lastseen: 1
},
{
id: 2,
name: "lorem B",
lastseen: 16
},
{
id: 3,
name: "lorem C",
lastseen: 3
},
{
id: 4,
name: "lorem D",
lastseen: 10
}
];
return (
<div>
{data.map(item => {
return item.lastseen === 1 ? (
<p key={item.id}>{item.lastseen}hr</p>
) : (
<p key={item.id}>{item.lastseen}hrs</p>
);
})}
</div>
);
}
}
export default App;Maintenant, je l'ai compris grâce à l'aide.
J'ai mis à jour ma composante vue sur P> mon erreur, je pensais "l'utilisateur" est toujours un tableau qui est Pas c'est un objet.
C'est pourquoi je continue à obtenir une erreur "TypeError: utilisateur.map n'est pas une fonction" p> p>
à partir de votre code ci-dessus sera lancé une erreur p> typeError: utilisateur.map n'est pas une fonction p>
blockQuote> comme et cela fonctionnera bien. P> p>
utilisateur code> est un objet que vous pouvez utiliser objet.keys code> et de la carte sur elle. Donc, changez votre code p>
Quel problème êtes-vous confronté en ce moment?
J'ai reçu cette erreur "TypeError: utilisateur.map n'est pas une fonction"
utilisateur code> n'est pas un tableau afin que vous obteniez cette erreurMais il s'agit d'objets Const Data Array, non? Je me suis gratté ma tête pendant 3 jours maintenant.
Mise à jour à cela, il fonctionnera dans votre cas {objet.keys (utilisateur) .map ((clé) => (touche == 'chant] (utilisateur] == 1? utilisateur [clé] + 'hr': utilisateur [clé] + 'hrs'): null))} code>