2017-02-28 77 views
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

+3

您是否試過閱讀關於'ref'的官方React文檔,解釋其工作原理? https://facebook.github.io/react/docs/refs-and-the-dom.html – anvk

+0

有趣的是,這種實現會更好還是更糟糕,即使用狀態來保存輸入並設置onChange?你怎麼能確定哪個更好? – Turnipdabeets

+0

爲了回答你的問題,我建議你閱讀另一個偉大的鏈接https://facebook.github.io/react/tutorial/tutorial.html。 。作爲一個簡短的回答,你應該在你的React代碼中儘可能少使用'ref'。如果你能避免它,那就避免它。 – anvk

回答