Comments (6)
@tzapu you can use the prop innerRef
to directly get the DOM node :)
<Textarea
placeholder='Type here...'
className='textarea'
innerRef={(textarea) => { this.messageTextarea = textarea }}
key={ textarea_value }
defaultValue={ textarea_value } />
const textarea_value = this.messageTextarea.value
from react-autosize-textarea.
Hi @tzapu
which version of React are you using?
Anyway, every version of React should support string refs (https://facebook.github.io/react/docs/more-about-refs.html#the-ref-string-attribute)
You can simply pass a prop ref
to TextareaAutosize
and then access through this.refs
object.
If you need the DOM element and you're using React < 15 you should use ReactDOM.findDOMNode
class Example extends React.Component {
componentDidMount() {
// React 13
console.log(React.findDOMNode(this.refs._ref).value);
// React 14
console.log(ReactDOM.findDOMNode(this.refs._ref).value);
// React 15
console.log(this.refs._ref.value);
}
render() {
return <TextareaAutosize ref='_ref' />;
}
}
PS: In general it's a good idea to avoid using refs to get an input/textarea value. You should try to save it in your state using the callback onChange
and access it from there:
class Example extends React.Component {
state = { value: null }
onChange = (e) => this.setState({ value: e.target.value })
render() {
return <TextareaAutosize onChange={this.onChange} value={this.state.value} />;
}
}
from react-autosize-textarea.
thanks for the hint. much appreciated
i was using this.refs.textarea.value
ref="textarea" in my case, of course, in react 15
i could also log the textarea itself, only .value was empty
i am currently trying another auto sizing text area so can t retest, but, again, thank yo very much for your hints. in case anyone stumbles upon this, they ve got a lot things to try now
from react-autosize-textarea.
@tzapu I have it working like this (uncontrolled, no state binding, React 16)
Notice the "ref"
<Textarea
placeholder='Type here...'
className='textarea'
ref={(textarea) => { this.messageTextarea = textarea }}
key={ textarea_value }
defaultValue={ textarea_value } />
Than to get the value I just do:
const textarea_value = this.messageTextarea._rootDOMNode.value
from react-autosize-textarea.
index.js:2177 Warning: React does not recognize the `innerRef` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `innerref` instead. If you accidentally passed it from a parent component, remove it from the DOM element.
React 16.1.1
from react-autosize-textarea.
@tzapu which version are you using? it shouldn't happen in the last version.
the latest version is 3.0.1
from react-autosize-textarea.
Related Issues (20)
- autoFocus doesn't work HOT 1
- IE11 not supported (?) HOT 1
- Passing a function to ref fails prop type validation HOT 6
- THANK YOU! HOT 1
- lose ref value after rerendering page HOT 3
- Switch to forwardRef instead of callback style ref HOT 1
- Function passed to innerRef is never called HOT 1
- onChange typescript definition problem HOT 1
- How the initial height of the textarea is calculated ? HOT 1
- Failed prop type: Invalid prop `innerRef` of type `function` supplied to `TextareaAutosizeClass`, expected `object` HOT 3
- Styled Component example seems to be broken HOT 2
- How to ADD EMOJI PICKER??
- 7.1 version breaks TypeScript projects by declaring optional properties as required HOT 5
- How to 'force' auto-height calculation? HOT 1
- Add react 17 as peer dependency HOT 5
- "Paste" doesn't work HOT 1
- Bottom padding missing in Firefox HOT 1
- Bug with latest version of autosize HOT 3
- Using StyledComponents and MaxRows without "jumps"
- Page scrolls up when typing (when being zoomed out in Safari) HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-autosize-textarea.