2017-07-28 66 views
0

開始到最近學習React.js並遇到以下問題: enter image description hereReact.js如何使用getElementById方法獲取道具中的id?

我想用getElementByIddiv元素,但它不工作和控制檯的警報can not read property 'props' of null。那麼我怎樣才能得到div元素?它困擾了我幾個小時。 謝謝。

+3

嗨達達Jiao--歡迎StackOverflow上。您可能想要查看[問]。一般認爲包含指向代碼圖像的鏈接的做法很差。將代碼包含在問題本身中會更好,以及對發生錯誤的錯誤解釋。除此之外,我想提醒你,這種直接的DOM操作通常不是React的全部內容 - 如果你真的需要DOM參考評論['ref'](https://facebook.github.io/react/ docs/refs-and-the-dom.html) - 但請注意,通常這不是必需的。 –

+0

利用refs而不是直接訪問DOM,你可以參考這個答案https://stackoverflow.com/questions/38093760/in-react-js-is-there-any-function-similar-like-document-getelementbyid -in-ja/38093981#38093981 –

回答

1

React的整個想法是你不訪問DOM,但使用虛擬DOM。

爲了實現您正在嘗試完成的任務(這是因爲代碼不完整而有點不清楚),您需要使用stateful component來存儲用戶輸入this.state。在React表單上查看this page

你會想要做這樣的事情,你在哪裏通過將其存儲在組件上跟蹤用戶輸入:

class NameForm extends React.Component { 
    constructor(props) { 
    super(props); 
    this.state = {value: ''}; 

    this.handleChange = this.handleChange.bind(this); 
    this.handleSubmit = this.handleSubmit.bind(this); 
    } 

    handleChange(event) { 
    this.setState({value: event.target.value}); 
    } 

    handleSubmit(event) { 
    alert('A name was submitted: ' + this.state.value); 
    event.preventDefault(); 
    } 

    render() { 
    return (
     <form onSubmit={this.handleSubmit}> 
     <label> 
      Name: 
      <input type="text" value={this.state.value} onChange={this.handleChange} /> 
     </label> 
     <input type="submit" value="Submit" /> 
     </form> 
    ); 
    } 
} 
+0

非常感謝!我試着用你的方法,它的工作原理! –

+0

太棒了!如果您對答案滿意,請將其標記爲正確並解決問題。 –

相關問題