import React, { Component } from 'react'; import { debounce } from 'lodash'; export interface Props { onChange: (alignmentPeriod) => void; value: string; } export interface State { value: string; } export class AliasBy extends Component { propagateOnChange: (value) => void; constructor(props) { super(props); this.propagateOnChange = debounce(this.props.onChange, 500); this.state = { value: '' }; } componentDidMount() { this.setState({ value: this.props.value }); } componentWillReceiveProps(nextProps: Props) { if (nextProps.value !== this.props.value) { this.setState({ value: nextProps.value }); } } onChange = e => { this.setState({ value: e.target.value }); this.propagateOnChange(e.target.value); }; render() { return ( <>
); } }