我刚刚做了一个ReactJS教程,我点击了这个:
renderForm() {
return (
<div className='note'>
<form>
<textarea ref={input => this._newText = input}/>
<button><FaFloppy0/></button>
</form>
</div>
)
}
我理解整个代码,除了ref部分。我知道它是React Docs的一部分,所以这不是我的问题。
我的问题是this._newText
是什么?谷歌对此保持沉默。我知道它需要textarea
的价值。
但React具体是什么?我以前从未见过这样的事情。
答案 0 :(得分:2)
Refs提供了一种访问DOM节点或在render方法中创建的React元素的方法。
如果你向render方法中的元素提供一个包含函数的ref
道具(就像在你的例子中一样),那么将使用DOM节点或React元素调用该函数。
当textarea被渲染时,react会调用传递textarea的ref方法
ref={input => this._newText = input} // input == textarea ref on render
在渲染函数外部访问ref
的典型方法是将其存储在可在整个组件中访问的实例变量this.someVar
中。
所以回答你的问题this._newText
只是一些存储textarea ref
的实例变量(我们知道它可以被命名为任何东西)而不是React特有的。