Как сделать так, чтобы кнопка реагирования пользовательского интерфейса материала действовала как ссылка response-router-dom?

Как я могу заставить Материал UI реагировать на компонент Button, действуя как компонент Link из реагировать-маршрутизатор-дом, не теряя при этом его оригинальный стиль? Как и изменение маршрута по клику.

import Button from '@material-ui/core/Button';

<Button variant = "contained" color = "primary">
    About Page
</Button>

Примерно так, но с сохранением оригинального стиля Button:

import Button from '@material-ui/core/Button';
import { Link } from 'react-router-dom';

<Button variant = "contained" color = "primary">
    <Link to = "/about">
        About Page
    </Link>
</Button>

Возможный дубликат Material-ui добавляет компонент Link из React-Router

Tholle 01.08.2018 23:46
Поведение ключевого слова "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) для оценки ваших знаний,...
35
1
18 183
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Хорошо, это очень просто, я не знаю, почему у меня не получилось:

Просто сделай так:

import Button from '@material-ui/core/Button';
import { Link } from 'react-router-dom';

<Button component = {Link} to = "/about" variant = "contained" color = "primary">
  About Page
</Button>

Вы можете найти более подробную информацию на https://next.material-ui.com/guides/routing/.

как указать еще атрибут типа exact для Link?

Tin 06.12.2019 15:39

Это выходит за рамки этого вопроса, но как бы сделать это динамичным? Скажем, я не передаю ссылку, не использую component = { Link }

Riza Khan 07.03.2021 16:12

Вам нужно обернуть <Button /> внутри компонента <Link />.

import Button from '@material-ui/core/Button';
import { Link } from 'react-router-dom';

const ButtonWithLink = () => (
  <Link to = "/about">
   <Button variant = "contained" color = "primary">
     About Page
   </Button>
  </Link>
)

этот способ тоже работает. просто нужно придать стилю убрать подчеркивание с Link. Спасибо

Valay 03.08.2019 18:52

Это было чрезвычайно полезно для проблемы, с которой я столкнулся, когда у меня есть оболочка для Link, и поэтому метод component = {Link} по какой-то причине привел к потере стиля из Material-UI. Этот метод восстановил укладку.

c_sagan 16.12.2019 17:56

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