確かに最適ではありませんが、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>
);
}
}
これは優れたアプローチではなく、明らかに複雑さが急速に増しますが、小規模なアプリでは機能する可能性があります。