2017-02-05 15 views
0

私はReactコンポーネントのpropsに格納されている配列をマップしようとしています。問題は、以下のように定義された一連のステップがある場合でも、「ステップは定義されていません」というエラーが表示され続けることです。私が間違ってやっていることに対する考え?前もって感謝します!コンポーネントのReact prop配列へのアクセス

render() { 
const protocol = this.props.protocol; 
const steps = protocol.steps; 
let stepList = null; 

if (steps != null) { 
    stepList = <ul> 
    steps.map(
     step => <li>{step.title}</li> 
    ) 
    </ul>; 
} else { 
    stepList = 'Do not display list'; 
} 

return (
    <div className="protocols-detail"> 
    List of steps for {protocol.title} 
    { stepList } 

    </div> 
); 

}

enter image description here

答えて

1

問題は、このラインである、あなたは常にこれを試して{}を使用HTML要素内の任意のjsのコードを使用して、{}を使うのを忘れていました:

stepList = <ul> 
    { 
     steps.map(
     (step,i) => <li key={i}>{step.title}</li> 
     ) 
    } 
    </ul>; 

もう1つのことは、そのアイテムを作成するときに常に各アイテムにユニークなkeyを割り当てます。 loopui elements dynamically

+0

ありがとうございます!私はまだ学習過程にあり、私は助けに感謝します。 –

+0

あなたを助けてうれしい:) :)もしあなたが反応の初心者であれば、少なくともこの最も基本的なものを読んでください、それはあなたを助けるでしょう:) https://facebook.github.io/react/docs/hello-world.html –

1

は、あなたはそれがあるべき{ }<ul></ul>内部タグ)に

steps.mapをラップする必要があります。

render() { 
const protocol = this.props.protocol; 
const steps = protocol.steps; 
let stepList = null; 

if (steps != null) { 
    stepList = <ul> 
    {steps.map(
     step => <li>{step.title}</li> 
    )} 
    </ul>; 
} else { 
    stepList = 'Do not display list'; 
} 

return (
    <div className="protocols-detail"> 
    List of steps for {protocol.title} 
    { stepList } 

    </div> 
); 
関連する問題