2016-08-26 44 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> 
) 
}