Компонент в reactJs

Я работаю над реакцией и хочу указать ссылку href на другой компонент в реакции js. Ниже приведен атрибут href, над которым я работаю, и хочу перенаправить его на другой компонент с именем MenuForm. Этот компонент имеет форму для ввода меню. Я хочу, чтобы форма была открыта после того, как я нажму ссылку меню.

<a href = "#" className = "btn btn-primary">Menu</a>

Компонент, который я хочу перенаправить, это MenuForm <MenuForm />

Не могли бы вы уточнить, что вы ищете? Вы хотите перенаправить на другой компонент при нажатии на ссылку? Вы используете react-router?

soywod 14.03.2019 00:04

Я новичок в React. Моя форма находится в компоненте MenuForm, и я хочу загрузить форму, когда нажимаю кнопку меню

madhav koirala 14.03.2019 00:07

Это то, что вам нужно knowbody.github.io/react-router-docs/api/Link.html <Link to = {${match.url}/rendering}>Визуализация с помощью React</Link> Для ссылки: reacttraining.com/react-router/web/example/basic

Azeem Aslam 14.03.2019 00:10

Вы предоставили слишком мало контекста. Это может быть так же просто, как добавить onClick к элементу ссылки, который обновляет внутреннее состояние (например, this.setState({ showMenuForm: true }), а в render() что-то вроде {this.state.showMenuForm && <MenuForm /> }), или так же сложно, как добавить в приложение маршрутизатор, редукс и Бог знает что еще.

pawel 14.03.2019 00:10
Поведение ключевого слова "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) для оценки ваших знаний,...
0
4
45
2

Ответы 2

Вам нужно поддерживать состояние, чтобы показать/скрыть форму:

class MyComponent extends Component {
  state = {
    showForm: false
  }

  handleClick = event => {
    event.preventDefault()
    this.setState({showForm: true})
  }

  render() {
    return (
      <a href = "#" onClick = {this.handleClick} className = "btn btn-primary">Menu</a>
      // ...
      {this.state.showForm && <MenuForm />}
    )
  }
}

Если вы используете Реагировать на хуки, это еще проще:

function MyComponent() {
  const [showForm, setShowForm] = useState(false)

  function handleClick(event) {
    event.preventDefault()
    setShowForm(true)
  }

  return (
    <a href = "#" onClick = {handleClick} className = "btn btn-primary">Menu</a>
    // ...
    {showForm && <MenuForm />}
  )

}

Если вы используете react-router-dom и хотите, чтобы URL-адрес менялся при переходе по ссылке, вы можете настроить маршрутизатор следующим образом:

// router.js
import { BrowserRouter, Route } from "react-router-dom";
ReactDOM.render(
  <BrowserRouter>
    <Route path = "/here" component = {HereComponent} />
    <Route path = "/there" component = {ThereComponent} />
  </BrowserRouter>,
);

Затем вы сможете использовать компонент Link, например,

import { Link } from 'react-router-dom';
<Link to = "/there">there</Link>

Это загрузит компонент и изменит URL-адрес браузера. Вы можете прочитать больше о react-router-dom здесь: https://reacttraining.com/react-router/web/guides/quick-start

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