2017-08-16 101 views
0

我通过将数据从一个组件传递到另一个组件来解决数据渲染问题。我正确地从一个部件的数据显示到另一个但当时我不能够提取数据正确没有渲染数据通过道具

根组件

<SelectContainer type={3} data={this.props.templates}/> 

辅元件

import React from 'react'; 
const SelectContainer = ({type, data}) => { 
let option = []; 

if (type === 1) { 
    option.push(<option value="#" key={0}>Grant</option>)    
}else if (type === 2) { 
    option.push(<option value="#" key={0}>1</option>);   
    option.push(<option value="#" key={1}>2</option>); 
    option.push(<option value="#"key={2}>3</option>);   
} 
else if (type === 3) {   
    for (let i = 0; i <= data.length; i++) { 
     // console.log(i); 
     option.push(<option key={i+1} value={data.descTemplate}> 
      {data.descTemplate}</option>);     
    } 
} 
return (
    <select className="selectContainer"> 
     {option.map((item) => { 
      console.log(item) 
      return item 
     })} 
    </select> 
); 
} 

export default SelectContainer; 

的IMG演出的console.log在return() enter image description here

select元素不呈现我发送给父代的属性的数据零件。 console.log打印我什么,我在图像中显示,而不是数据

+0

我不确定你的问题是什么,你能详细说明一下吗? –

+0

@canaanseaton select元素不呈现我为父组件的属性发送的数据。 console.log打印我在图像中显示的内容而不是数据 – jmrosdev

+0

有什么想法? – jmrosdev

回答

0

我没有发现任何错误。它工作正常。位修改的摘录:

const SelectContainer = ({type, data}) => { 
 
    let option = []; 
 
    for (let i = 0; i < data.length; i++) { 
 
    option.push(<option key={i+1} value={i+1}>{data[i].desc}</option>)    
 
    } 
 

 
    return (
 
     <select className="selectContainer"> 
 
      {option.map((item) => { 
 
       return item; 
 
      })} 
 
     </select> 
 
); 
 
} 
 

 
const templates = [ 
 
    { 
 
     desc: 1 
 
    }, 
 
    { 
 
     desc: 2 
 
    }, 
 
    { 
 
     desc: 3 
 
    } 
 
] 
 
ReactDOM.render(
 
    <SelectContainer type={3} data={templates}/>, 
 
    document.getElementById('app') 
 
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 

 
<div id="app"></div>

我认为他们是出错了data.descTemplate

+0

我认为问题在于日期调用。我必须使用道具来做什么? – jmrosdev

+0

现在检查并尝试关联,我添加了道具。 – Dev

+0

我观察到,通过印刷项目,道具的关键是未定义的,而如果我使用案例2(类型=== 2),如果这使我正确的价值观。这可能发生? – jmrosdev