0
這裏的輸入如何得到.value
?它是一些如何得到這從一個節點:這裏的輸入如何得到.value和什麼是ref?
<input ref={node => { input = node }} />
是node
的DOM節點,如輸入標籤?
無論如何,ref
到底是什麼,爲什麼我們需要它來獲得輸入值?
我可以將ref
放在任何html類型的標籤中以獲取DOM節點嗎?
import React from 'react'
import { connect } from 'react-redux'
import { addTodo } from '../actions'
let AddTodo = ({ dispatch }) => {
let input
return (
<div>
<form onSubmit={e => {
e.preventDefault()
if (!input.value.trim()) {
return
}
dispatch(addTodo(input.value))
input.value = ''
}}>
<input ref={node => {
input = node
}} />
<button type="submit">
Add Todo
</button>
</form>
</div>
)
}
AddTodo = connect()(AddTodo)
export default AddTodo
您是否試過閱讀關於'ref'的官方React文檔,解釋其工作原理? https://facebook.github.io/react/docs/refs-and-the-dom.html – anvk
有趣的是,這種實現會更好還是更糟糕,即使用狀態來保存輸入並設置onChange?你怎麼能確定哪個更好? – Turnipdabeets
爲了回答你的問題,我建議你閱讀另一個偉大的鏈接https://facebook.github.io/react/tutorial/tutorial.html。 。作爲一個簡短的回答,你應該在你的React代碼中儘可能少使用'ref'。如果你能避免它,那就避免它。 – anvk