-1

私は長い間この問題を回避しようとしてきましたが、解決策が見つからないようです。

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

この Ruby on Rails アプリでは、1 つの親コンポーネントとその内部で多数の const コンポーネントを操作します。問題は、ユーザーがクリックする必要がある 3 つのボタンがあり、クリックしたときにコンテンツ ブロックを変更する必要があるということです。

何か案は?

4

1 に答える 1

1

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

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>
     );
  }
}

これは優れたアプローチではなく、明らかに複雑さが急速に増しますが、小規模なアプリでは機能する可能性があります。

于 2017-08-15T14:22:42.003 に答える