2017-08-15 3 views
-1

私は長い間この問題を回避しようとしてきましたが、解決策が見つからないようです。React Stateを使用してビューを変更する方法はありますか?

私が扱っているプロジェクトでは、React-Router on Railsを使用できませんが、State Methodでコンポーネントを切り替える方法があると聞きました。本当ですか?

このRuby on Railsアプリケーションでは、1つの親コンポーネントとその中で多くのconstコンポーネントを扱います。つまり、ユーザーがクリックする必要がある3つのボタンがあります。その場合、コンテンツブロックが変更される必要があります。

アイデア?

+0

条件付きでレンダリングする方法を尋ねていますか? – azium

+0

いくつかのコード例を提供する必要があります。 – Purgatory

答えて

1

確かに、それは最適ではありませんが、リアクタールーターを使用できない理由を私は確かに調べています。別の質問を開いてその問題を解決してみてください。

import HomeComponent from 'home-component'; 
import AboutComponent from 'about-component'; 

const ROUTES = { 
    home: HomeComponent, 
    about: AboutComponent 
}; 

class MainComponent extends Component { 
    state = { component: HomeComponent } 

    changeRoute = (routeName) => { 
    this.setState({ component: ROUTES[routeName] || HomeComponent }); 
    } 

    render() { 
    const { component } = this.state; 

    return (
     <div> 
     <button onClick={() => changeRoute('home')}>Home</button> 
     <button onClick={() => changeRoute('about')}>About</button> 
     { component } 
     </div> 
    ); 
    } 
} 

これは素晴らしいアプローチではなく、明確に、複雑さが急激に増加しますが、それは小さなアプリのために働くことがあります。

関連する問題