Изменить маршрутизацию для компонентов

У меня есть компоненты дерева:

class Home extends Component {

    render() {
        return (
            <div>
                <h2>Home</h2>
            </div>
        );
    }

}

class Task extends Component {

    render() {
        return (
            <div>
                <h2>Task</h2>
            </div>
        );
    }

}

class User extends Component {

    render() {
        return (
            <div>
                <h2>User</h2>
               // <Link to='/task'>???</Link>                
            </div>
        );
    }

}

И у меня index.js:

ReactDOM.render(
    <BrowserRouter>
        <Switch>
            <Route exact path='/' component = {Home} />
            <Route path='/user' component = {User} />
        </Switch>
    </BrowserRouter>, 
    document.getElementById('root')
);

Есть два компонента, которые сопоставляются с двумя URL-адресами: как сделать третий компонент визуализированным отдельно, когда вы нажимаете на что-то (кнопку или ссылку), чтобы URL-адрес не изменялся. То есть был отрисован другой компонент, а адрес остался прежним.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
36
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам следует взглянуть на этот пост SO, я думаю, он может вам помочь.

Перейдите к компоненту без изменения URL-адреса в ReactJS

Если есть что-то, что вам все еще непонятно, дайте мне знать.

Craws 26.11.2018 09:31

Вы должны создать функцию, которая привязывается к конструктору и объявляет состояние, чтобы определить, показывать ли вашу вторую страницу или нет (true || false)

import React, {Component} from 'react'
import MyComponent3 from './MyComponent3.jsx'

export default class MyComponent2 extends Component {
  constructor () {
    super()
    this.handleOnClick = this.handleOnClick.bind(this)
    this.state = { show : false}
  }

  handleOnClick () {
    this.setState({show:true})
  }

  render () {
    return (
      <div>
        <button onClick = {this.handleOnClick()}>Submit Me</button>
        { this.state.show && <MyComponent3/> }
      </div>
    )
  }
}

Другие вопросы по теме