<input ref={node=>{input=node}}/>的疑問
let AddTodo=({dispatch})=>{
let input;
return (<div>
<from onsubmit={e=>{
e.preventDefault();
if(!input.value.trim()){return}
dispatch(addTodo(input.value))
input.value=""
}}>
<input ref={node=>{input=node}}/>
<button type="submit">
AddTodo
</button>
</div>
)
}
這里的node參數(shù)是不是我們在輸入框里輸入的值?。咳缓笏麄鹘o一個叫input的自定義變量。那他的value屬性是怎么來的,為什么{input=node}就可以默認把數(shù)據(jù)給value屬性。
2016-12-27
是的哈,類似jquery
2018-12-18
非受控組件的調(diào)用方式,官方文檔提到的ref,可以寫成受控的形式
2018-08-24
當一個有 ref 的組件被 mount 的時候,如果 ref 屬性是一個函數(shù),如果是,就會調(diào)用這個函數(shù)。
這個函數(shù)就相當于 `node => this.input = node`,node 就是這個 input 元素,也就是說把這個 input 元素記錄到成員變量 input 上。以后就可以通過成員變量來獲取 input 元素了。
2017-02-06
補充,可以參考http://www.ruanyifeng.com/blog/2015/03/react.html,事實上這里的回調(diào)函數(shù)取代了本來應該有的事件觸發(fā)的語句
2017-02-06
樓上2個答的都對,通過回調(diào)函數(shù)才能讓node拿到input的dom元素,然后利用ref的屬性可以獲取元素的輸入
2017-01-21
我也不是很清楚,但是覺得樓上那個不對?
https://facebook.github.io/react/docs/refs-and-the-dom.html
ref附帶一個回調(diào)函數(shù),函數(shù)在組件掛載或者卸載的時候立刻調(diào)用,
當ref屬性用于HTML元素(對應react的component)時,底層的DOM元素會作為參數(shù)傳給回調(diào)函數(shù)
這里就是說node這個形參實際接受了input的dom元素,
然后回調(diào)函數(shù)中將拿到的dom賦值給之前聲明的input
2016-12-26
es6新屬性,相當于:
const node = this.ref.input
獲取元素的