Maison  >  Questions et réponses  >  le corps du texte

Titre réécrit comme suit : Quoi qu'il en soit, je ne parviens pas à obtenir une valeur de mon tableau

<p>J'essaie d'afficher les données d'un tableau dans mon composant React. </p> <p>Je peux voir les données dont j'ai besoin dans la console du développeur du navigateur via <code>console.log()</code> : </p> <pre class="brush:php;toolbar:false;">FinalRecords.js::recordTitle : (4) 0 : {membres : Array(10), identifiant : 62, titre : 'RR 1980 Record 1', storeId : 1088} 1 : {membres : Array(10), identifiant : 63, titre : 'RR 1980 Record 2', storeId : 1088} 2 : {membres : Array(10), identifiant : 64, titre : 'RR 1980 Record 3', storeId : 1088} 3 : {membres : Array(10), identifiant : 65, titre : 'RR 1980 Record 4', storeId : 1088} longueur : 4 [[Prototype]] : Array(0)</pre> <p>Mais je n'arrive pas à comprendre comment obtenir le <code>title</code>. </p> <p>J'ai essayé beaucoup de choses différentes, celle-ci étant la plus récente : </p> <pre class="brush:php;toolbar:false;">render() { const { recordId, records, bandName } = this.props; var data = records.filter((r) => r.id === recordId); var records = data.toArray(); console.log("FinalRecords.js :: recordTitle: ", records); return <div> enregistrement - {findRecordTitle(records, recordId) } - {bandName || } } fonction findRecordTitle (enregistrements, identifiant) { return records.find((record) => { return record.id === id; }) }</pré> <p>Je dois obtenir le <code>title</code> de l'enregistrement en utilisant <code>id</code>. </p> <p>Mais c'est toujours vide. </p> <p>Ai-je fait quelque chose de mal ? </p>
P粉308783585P粉308783585450 Il y a quelques jours585

répondre à tous(1)je répondrai

  • P粉343408929

    P粉3434089292023-08-19 09:40:13

    Le nom de cette fonction signifie que vous vous attendez à ce qu'elle renvoie un "titre" (que j'interpréterais comme une valeur de chaîne) :

    function findRecordTitle(records, id) {
        return records.find((record) => {
            return record.id === id;
        })
    }

    Cependant, nulle part dans cette fonction cela n'a rien à voir avec le "titre". Il renvoie l'attribut records数组中的一个匹配对象(或null)。如果你只想返回该对象的title, retournez simplement cet attribut :

    function findRecordTitle(records, id) {
        return records.find((record) => {
            return record.id === id;
        })?.title; // <--- 这里
    }

    EDIT : Si votre environnement JavaScript ne fonctionne pas avec le chaînage facultatif, vous pouvez vérifier explicitement null avant d'essayer d'utiliser l'objet :

    function findRecordTitle(records, id) {
        const record = records.find((record) => {
            return record.id === id;
        });
        return record ? record.title : null;
    }

    Ou il peut utiliser par défaut une chaîne vide au lieu de null etc.

    répondre
    0
  • Annulerrépondre