zent
Version:
一套前端设计语言和基于React的实现
45 lines (34 loc) • 732 B
JavaScript
/**
* 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;