diff options
author | Radu-Sebastian Amarie <radu@findie.me> | 2016-11-17 19:57:55 +0200 |
---|---|---|
committer | Radu-Sebastian Amarie <radu@findie.me> | 2016-11-17 19:57:55 +0200 |
commit | 329c3d49d0c79dbe2a53eeefd17b90c80cc9242d (patch) | |
tree | ab3ddde2cdcd44243136fd4babb0d90fac61dcf7 /src/TextareaAutosize.js | |
parent | 45859a32008fc5a5bb9a6c4dec4818a2bbfa7ba9 (diff) | |
download | react-autosize-textarea-329c3d49d0c79dbe2a53eeefd17b90c80cc9242d.zip react-autosize-textarea-329c3d49d0c79dbe2a53eeefd17b90c80cc9242d.tar.gz react-autosize-textarea-329c3d49d0c79dbe2a53eeefd17b90c80cc9242d.tar.bz2 |
FIX: Ref issue & Compatibility with React 15.4.0
PURGE: getTextareaDOMNode
Diffstat (limited to 'src/TextareaAutosize.js')
-rw-r--r-- | src/TextareaAutosize.js | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/TextareaAutosize.js b/src/TextareaAutosize.js index b96bb63..45ebdf1 100644 --- a/src/TextareaAutosize.js +++ b/src/TextareaAutosize.js @@ -22,22 +22,16 @@ export default class TextareaAutosize extends React.Component { rows: 1 }; - getTextareaDOMNode = () => ( - this.refs.textarea.nodeType === 1 ? - this.refs.textarea : - ReactDOM.findDOMNode(this.refs.textarea) - ); - componentDidMount() { - autosize(this.getTextareaDOMNode()); + autosize(this.textarea); if (this.props.onResize) { - this.getTextareaDOMNode().addEventListener(RESIZED, this.props.onResize); + this.textarea.addEventListener(RESIZED, this.props.onResize); } } componentWillUnmount() { if (this.props.onResize) { - this.getTextareaDOMNode().removeEventListener(RESIZED, this.props.onResize); + this.textarea.removeEventListener(RESIZED, this.props.onResize); } this.dispatchEvent(DESTROY); } @@ -45,7 +39,7 @@ export default class TextareaAutosize extends React.Component { dispatchEvent = (EVENT_TYPE, defer) => { const event = document.createEvent('Event'); event.initEvent(EVENT_TYPE, true, false); - const dispatch = () => this.getTextareaDOMNode().dispatchEvent(event); + const dispatch = () => this.textarea.dispatchEvent(event); if (defer) { setTimeout(dispatch); } else { @@ -58,7 +52,7 @@ export default class TextareaAutosize extends React.Component { render() { const { children, onResize, ...props } = this.props; // eslint-disable-line no-unused-vars return ( - <textarea {...props} ref='textarea'> + <textarea {...props} ref={ref => this.textarea = ref}> {children} </textarea> ); |