UNPKG

zent

Version:

一套前端设计语言和基于React的实现

45 lines (34 loc) 732 B
/** * Trigger */ import React, { Component, PropTypes } from 'react'; class Trigger extends Component { constructor(props) { super(props); this.state = { open: props.open }; this.triggerClickHandler = this.triggerClickHandler.bind(this); } componentWillReceiveProps(nextProps) { this.setState(nextProps); } triggerClickHandler() { let { open } = this.state; this.props.onChange({ open: !open }); } render() { let Node = this.props.trigger; return <Node {...this.props} onClick={this.triggerClickHandler} />; } } Trigger.propTypes = { trigger: PropTypes.any, open: PropTypes.bool }; Trigger.defaultProps = { open: false }; export default Trigger;