2016-11-29 5 views
1

私はまだReactJSの新機能ですから、Reactコンポーネントを実装するのに苦労しています。反応を起こすには? Reactの考え方に苦しんでいる

私のアプリでreact-tabsを使用しています。これは幅が十分に広い場合は問題ありませんが、一度携帯電話のサイズに縮小したら、ハンバーガーパネルを作りたいと思います。

どうすればこの問題を解決できますか? タブのコンポーネントまたはハンバーグのパネルコンポーネントをレンダリングする条件付きif-elseブロックを作成するコンポーネントの幅が常にチェックされていますか?

これについて簡単な方法があります。しかし、私はそれをやる方法が少し失われています。

ありがとうございました!

+0

これは完全にCSSの機能であり、Reactとは関係ありません。必要な機能を備えたレスポンシブなフレームワークをCSS用に選択する必要があります。 –

+0

しかし、ハンバーガーパネルにはまだ別のコンポーネントが必要です。または、私はちょうどCSSを介して反応タブの外観を完全に変更するだろうか? – gjvatsalya

+0

私はこれがReactで解決されるはずだと確信しています。私は実際に仕事のプロジェクトで笑いの問題を解決しました。今すぐ例を書いてください。 –

答えて

1

これは、過去にこの問題をどのように処理したかの例です。

class App extends React.Component { 
    constructor() { 
     super(); 
     this.state = { 
      screenIsbig: true 
     }; 
    } 

    handleResize() { 
     if(window.innerWidth < 1200) { 
      this.setState({screenIsbig: false}) 
     } else { 
      this.setState({screenIsbig: true}); 
     } 
    } 

    componentDidMount() { 
     window.addEventListener('resize', this.handleResize.bind(this)); 
    } 

    componentWillUnmount() { 
     window.removeEventListener('resize', this.handleResize.bind(this)); 
    } 

    render() { 
     let renderThis; 
     if(this.state.screenIsbig) { 
      renderThis = <h1>This is for big screens</h1> 
     } else { 
      renderThis = <h3>This is for small screens</h3> 
     } 
     return (
      <div> 
       {renderThis} 
      </div> 
     ) 
    } 
} 
関連する問題