检查ReactJS无状态组件中是否存在方法

时间:2017-07-18 00:52:51

标签: javascript reactjs ecmascript-6

如果发现自己不断射击道具的方法:

 const Menu = (props) => <div style={styles.container}
                    onClick={(ev) => props.menuClick(ev, props.item)}>...</div>

但这些方法有时是可选的。如果方法存在,我该如何触发该方法呢?

这似乎不可读:

 const Menu = (props) => <div style={styles.container}
    onClick={(ev) => props.menuClick ? props.menuClick(props.item_id, ev) : ()=>{} }>

也许有一些propType遇到默认值的东西可以把所有未填充的传入方法转为void匿名函数吗?

更新

对于没有参数的方法,如评论部分所述,即使没有给出,这也是有效的:

const Menu = (props) => <div style={styles.container}
                    onClick={props.menuClick}>...</div>

作为ReactJS除了onClick = {null}

1 个答案:

答案 0 :(得分:1)

您可以使用包含默认空函数的默认道具,通过ES6类定义您的函数:

class Menu extends Component {
 static defaultProps = {
  onClick: () => {}
 }

 render() {
  return(<div style={styles.container} onClick={this.props.onClick}></div>);
 }
}