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

标签 javascript reactjs ecmascript-6

如果发现自己不断发射该 Prop 的方法:

 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 满足默认值的东西可以将所有未填充的传入方法转换为无效匿名函数?

更新:

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

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

作为 ReactJS 除了 onClick={null}

最佳答案

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

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

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

关于javascript - 检查 ReactJS 无状态组件中是否存在方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45155777/

相关文章:

javascript - 如何让异步/等待等待我的嵌套数组填充

javascript - 解构一个对象并创建带有键名的变量 Javascript

javascript - 需要 Javascript 或 JQuery 中的花式循环

javascript - 将 AngularJS 文件合并为一个文件

css - 找不到字体 : React-slick + nextjs

javascript - 当我导航到主包不加载的嵌套路由时使用 React.js 延迟加载

javascript - 如何在 JavaScript 中验证此正则表达式?

javascript - 调用API后,我无法检测innerHTML中的api数据

reactjs - Swiper Slider Effect 在 React Js 中不起作用

javascript - 将自定义值连接到按钮并将它们传递给函数