В React есть несколько способов отображать один из нескольких компонентов, в зависимости от выбора пользователя. Вот несколько подходов, которые вы можете использовать.
1. Условный рендеринг с использованием оператора if. Вы можете использовать оператор if внутри метода render вашего компонента, чтобы определить, какой компонент отображать. Например:
class App extends React.Component { constructor(props) { super(props); this.state = { selectedComponent: null }; } handleSelection(componentName) { this.setState({ selectedComponent: componentName }); } render() { const { selectedComponent } = this.state; if (selectedComponent === 'Component1') { return <Component1 />; } else if (selectedComponent === 'Component2') { return <Component2 />; } else if (selectedComponent === 'Component3') { return <Component3 />; } return ( <div> <button onClick={() => this.handleSelection('Component1')}>Component 1</button> <button onClick={() => this.handleSelection('Component2')}>Component 2</button> <button onClick={() => this.handleSelection('Component3')}>Component 3</button> </div> ); } }
2. Вывод компонента на основе значения в состоянии. Вы можете использовать состояние вашего компонента для определения, какой компонент отображать. Например:
class App extends React.Component { constructor(props) { super(props); this.state = { selectedComponent: null }; } handleSelection(componentName) { this.setState({ selectedComponent: componentName }); } render() { const { selectedComponent } = this.state; return ( <div> {selectedComponent === 'Component1' && <Component1 />} {selectedComponent === 'Component2' && <Component2 />} {selectedComponent === 'Component3' && <Component3 />} <button onClick={() => this.handleSelection('Component1')}>Component 1</button> <button onClick={() => this.handleSelection('Component2')}>Component 2</button> <button onClick={() => this.handleSelection('Component3')}>Component 3</button> </div> ); } }
3. Использование роутинга. Если ваши компоненты имеют отдельные пути URL, вы можете использовать библиотеку роутинга, такую как React Router, чтобы переключаться между компонентами на основе выбора пользователя. Например:
import { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom'; const App = () => { return ( <Router> <div> <nav> <ul> <li> <Link to="/component1">Component 1</Link> </li> <li> <Link to="/component2">Component 2</Link> </li> <li> <Link to="/component3">Component 3</Link> </li> </ul> </nav> <Switch> <Route path="/component1"> <Component1 /> </Route> <Route path="/component2"> <Component2 /> </Route> <Route path="/component3"> <Component3 /> </Route> </Switch> </div> </Router> ); };
Независимо от выбранного подхода, вы можете принять решение о том, какой компонент отображать на основе состояния или выбора пользователя, что позволяет вам легко реализовать динамическое отображение компонентов в вашем приложении React.