2016-11-20 40 views
0

在下面的组件中,如果我尝试访问getMessage()函数中的myData对象的属性,使用myData.gender,我得到一个未定义的错误。发送到React组件中的函数的引用对象

如果我尝试myData.myData.gender它的作品。这是为什么?

当我检查myData进入getMessage()函数时,我看到它是一个对象,它包含一个myData对象。我很困惑为什么myData对象放置在另一个对象内。

有趣的是,我的组件里面,我可以直接访问属性,你可以在该行<div>Hello {myData.firstName}</div>

这里是我的简单的阵营看成分:

import React, {Component} from 'react'; 

const MyComponent = ({myData}) => { 

    return(

     <div>Hello {myData.firstName}</div> 
     <div> 

      {getMessage(myData)} 

     </div> 
    ); 
}; 

const getMessage(myData) => { 

    let output = ""; 

    if(myData.Gender == "m") { 
     output = "<span>Enjoy the football game tonight!</span>"; 
    } 
    else { 
     output = "<span>Enjoy your roses!</span>"; 
    } 

    return output; 

} 

ChannelContent.propTypes = { 
    myData: PropTypes.object.isRequired 
}; 

export default MyComponent; 

回答

-1
你已经一个错字

无论是在你的问题或在代码:

尝试myData.gender === 'm'代替myData.Gender == "m"

+0

为什么downvote?在你的代码中,你试图检查'(myData.Gender ==“m”)',而在你提到的'myData.gender'中使用小写'g'。 –