Кнопка из Jumbotron ссылается на кнопку из панели навигации в React

#reactjs #react-router #react-bootstrap

#reactjs #react-маршрутизатор #react-bootstrap

Вопрос:

У меня есть навигация в Home, About, Modeling и Resources. Мне интересно, как можно добавить ссылку на кнопку из Jumbotron, которая будет указывать на мою навигацию.

В App.js

 function App() {
  return (
    <div className="App">
      <Header />  
      <Jumbotron />
      <Layout>
          <Switch>
          <Route exact path="/" component={Home} />
          <Route path="/about" component={About} />
          <Route path="/modeling" component={Modeling} />
          <Route path="/resources" component={Resources} />
          </Switch>
          </Layout>
    
    </div>
  );
}
  

В Jumbotron.js

 export const Jumbotron = () => (
  <Styles>
    <Jumbo fluid className="jumbo">
      <div className="overlay"></div>
      <Container className="center">
        <h1>Welcome 3D astronomical models</h1>
        <p>
        <button class="btn btn-success btn-lg btn-getStarted" href="#modeling" role="button">Get Started</button>
        <button class="btn btn-success btn-lg btn-getStarted" href="#about" role="button">Learn More</button>
        </p>
      </Container>
    </Jumbo>
  </Styles>
)
  

Я использую href=»#моделирование», но страница не понимает, как перейти к моделированию страницы
Кто-нибудь может помочь? Я использую React

Чтобы быть точным, посмотрите на мой код по ссылке ниже: https://codesandbox.io/s/polished-cache-i4xzk?file=/src/App.js

Комментарии:

1. отображается ваша изолированная среда кода Hello CodeSandbox Start editing to see some magic happen! — в выходных данных не обнаружен jumbotron

2. не могли бы вы попробовать еще раз?

3. по-прежнему нет вывода @Sunny — вы редактируете правильную песочницу? я смотрю на polished-cache-i4xzk

4. повторите попытку. теперь это работает

5. не могли бы вы помочь мне, как связать кнопку из jumbotron с панелью навигации О моделировании?

Ответ №1:

У вашего jumbrotron есть проблема с CSS в отношении z-index . Ссылки внутри не могут взаимодействовать из-за отрицательного z-index

 .jumbo {
  background-size: cover;
  color: #efefef;
  height: 400px;
  position: relative;
  /* z-index: -2; <-- get rid of this */
  margin-left: 20px;
  margin-right: 20px;
}
  

Что касается кнопки «Подробнее», которую вы используете href , но вы можете просто использовать NavLink , потому что вы уже импортировали это и уже настроили маршрутизацию на стороне клиента.

Приведенный ниже код должен это исправить:

 <NavLink to="/about"><button class="btn btn-success btn-lg btn-getStarted">Learn More</button></NavLink>
  

Редактировать divine-water-xio1p


На данный момент я не совсем уверен, куда должна быть направлена ваша кнопка «Начать», но вы можете следовать той же концепции, которую я описал выше.

Комментарии:

1. Еще одна вещь, вы знаете, как удалить jumbotron, кроме домашней страницы?

2. закомментируйте или удалите <Jumbo fluid className="jumbo"> компонент (включая его дочерние элементы — все поддерево компонентов)

3. не могли бы вы перейти codesandbox.io/s/3d-tool-zjm5m?file=/src/components/Modeling.js здесь? на Modeling.js , я хочу связать его с новой страницей под названием Upload.js . На новой странице Upload.js , я только хочу отобразить панель навигации без jumbotron «Добро пожаловать в 3D астрономические объекты и кнопка «Начать, узнать больше» и все пространство, оставленное для отображения других вещей. Как я могу удалить jumbotron в Upload.js страница?

Ответ №2:

Попробуйте использовать ссылку вместо кнопки.

Комментарии:

1. вы пробовали подобное <Link to="/modeling">Get Started</Link> ?

2. Что происходит, когда вы нажимаете на ссылку?

3. перейдите по этой ссылке, чтобы понять, что я имею в виду codesandbox.io/s/polished-cache-i4xzk?file=/src/App.js и не могли бы вы помочь мне разобраться в этом?

4. Я получаю эту ошибку при попытке получить доступ к изолированной среде. Ошибка запроса с кодом состояния 404. Вы ее удалили?

5. Вы использовали ссылку?