2016-08-26 40 views
1

關於功能與經典組件,看看docs,似乎你只需要經典的組件,如果你想創建一個實例,讓你訪問this或你想要的生命週期方法。這是否意味着一個功能組件只有裏面有渲染?如果需要處理點擊,則必須通過onClick聽衆直接鏈接到其道具上的標記,並且無法通過​​函數?反應功能與經典組件

const Type = ({onTypeClick, name}) => { 
    <li 
    onClick={onTypeClick.bind(null, name)} 
    > 
    {name} 
    </li> 
} 

VS

const Type = React.createClass({ 
    handleClick (e) { 
    e.preventDefault() 
    this.props.onTypeClick(this.props.name) 
    }, 
    render() { 
    return (
     <li onClick={handleClick}> 
     {this.props.name} 
     </li> 
    ) 
    } 
}) 

回答

1

一個無狀態的組件返回渲染功能的結果,但它只是一個功能,所以它可以訪問的東西,在關閉。

const handleClick = (e, props) => { 
    e.preventDefault() 
    props.onTypeClick(props.name) 
} 

const Type = props => { 
    // don't forget to return! 
    return (
    <li onClick={event => handleClick(event, props)}> 
     {props.name} 
    </li> 
) 
}