2017-07-28 23 views
0

スタートは最近React.jsを学び、次のような問題に遭遇します enter image description hereReact.js getElementByIdメソッドを使用してIDを取得するにはどうすればよいですか?

私はgetElementByIdを使用してdiv要素を取得したいが、それは動作しませんし、コンソール警告can not read property 'props' of nullを。では、どうすればdiv要素を入手できますか?数時間悩まされています。おかげさまで

+3

こんにちはダダJiao--はStackOverflowのへようこそ。 [ask]を確認することができます。一般的に、コードのイメージへのリンクを含めることは貧弱な方法です。質問自体にコードを含めるほうがずっといいでしょうし、何がうまくいかないのかの説明もあります。それを超えて、私は、直接のDOM操作の仕方は、Reactのことは一般的にそうではないことを思い出させるでしょう。もしあなたが完全にDOM参照レビューを必要とするならば( '' ref'; https://facebook.github.io/react/ docs/refs-and-the-dom.html) - ただし、しばしば必要ではないことに注意してください。 –

+0

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で作業するということです。

達成しようとしていること(コードが不完全であるために少し不明)は、this.stateにユーザー入力を格納するstateful componentを使用することをお勧めします。反応フォームの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

素晴らしい!あなたが答えに満足しているなら、それを正しいものとしてマークし、問題を閉じてください。 –

関連する問題