2016-12-25 3 views
0

私は、componentDidMount()' I want to set the最小高さproperty of an element where className = "content-wrapper" to '600px'にあるリアクションコンポーネントを持っています。特定のclassNameを持つ要素の反作用最小高さプロパティ

私は次のことを試してみました:

残念ながら
componentDidMount() { 
    document.getElementsByClassName('content-wrapper').style.minHeight = "600px" 
} 

次のエラーが発生していること:

Uncaught TypeError: Cannot set property 'minHeight' of undefined

at MyComponent.componentDidMount

が、私はまだリアクトのこつを取得していますし、これを達成するために可能な任意の助けをいただければ幸いですゴール。ありがとう!

+0

コンテンツラッパーは、反応コンポーネントで作成した要素か、標準のhtmlまたはjsだけを使用している要素ですか? –

+0

これはちょうど 'div'タグでした –

+0

この' div'タグを反応コンポーネントに作成した場合、それは仮想 'div'になります。この場合、受け入れられた答えは、あなたが正しくないDOMを直接修正しているので、あなたが望むものではありません。それは、通常のHTMLファイルのdivまたは通常のJSを使用して作成された場合、それは問題ありません。 –

答えて

1

あなたはコンテンツラッパーの作成方法をまだ投稿していません。

あなたはこのようなものでした場合:

class Component extends React.Component { 
    render() { 
     return <div className="content-wrapper"/> 
    } 
} 

を反応させるのは、最後のレンダリング以降に変更されたかを確認するために、仮想DOMを使用しているため、その後、DOMを変更すると、直接(それが動作していても)リアクト反します。したがって、DOMを直接変更すると、Reactは以前の仮想DOMを見ているため何も変更されていないため、これらの変更を上書きします。

代わりにあなたが必要になります。

class Component extends React.Component { 
    componentDidMount() { 
     this.setState({conentWrapperMinHeight: "600px"}) 
    } 
    render() { 
     return <div className="content-wrapper" style={{minHeight: this.state.conentWrapperMinHeight}} /> 
} 
} 

あなただけの1つのdivのためにそれを行うか、動的コンテンツ・ラッパーにクラスを追加して600PXにCSSでminHeightのを設定することができれば、あなただけで600PXをハードコーディングできます。あなたが複数のコンポーネントに変更したいというコンテンツ・ラッパーのdivのマルチを使用している場合

は、あなたは、より高いコンポーネントにlift the state upに必要と小道具としてそれを渡すか、彼らは完全に無関係である場合にReduxのか、フラックスを使用します。

+0

私は1つのコンテンツラッパー 'div'を持っているので、それはいいですが、ありがとう。あなたの言うことが真実で、これがより良い練習であるなら、私はあなたの答えと努力に感謝します。 –

+0

@BarryMichaelDoyleもしそれがちょうど1つのdivであっても、それが** virtual ** divならば、あなたは 'style = {{minHeight:" 600px "}}'のような値をハードコードしたいのですが、DOMではなく –

+0

これも役に立ちます私のフォローアップの問題がたくさんあります。 –

1

要素を取得し、繰り返し、スタイルを設定します。

componentDidMount() { 
    document.querySelectorAll('.content-wrapper').forEach(el => el.style.minHeight = '600px'); 
} 
+1

完璧に動作します!ありがとう:) –

関連する問題