2016-11-20 38 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'。 –