各位同事好,
我有一个问题是基于我在一门课程中所做的一个项目。
我所有的代码都是实际构建的,我唯一难以实现的是一个按钮,我必须显示这个按钮,点击这个按钮就会进入搜索页面。我已经实现了链接,它在主页面上显示为超链接,但它会取代这个超链接按钮。
- 我的主页面显示的超链接如下(请注意页面底部右侧的超链接(:
带有超链接的主页
- 但是,根据项目要求,主页面会显示这样的按钮(具有将我带到搜索页面的功能,就像超链接一样(:
显示按钮的主页面
下面我向您展示我为组件所做的部分代码:
- App.js代码的一部分:
- 代码的开始:
import React from 'react';
import { Route } from 'react-router-dom';
import Home from './Home';
import Search from './Search';
import * as BooksAPI from './BooksAPI';
import './App.css';
class BooksApp extends React.Component {
state = {
books: []
}
- 路线部分:
render() {
return (
<div className="app">
<Route exact path="/" render={() => (
<Home
books={this.state.books}
changeShelf={this.changeShelf}
/>
)} />
<Route path="/search" render={() => (
<Search
changeShelf={this.changeShelf}
books={this.state.books}
/>
)} />
- 主页部分代码(Home.js(:
- 代码的开始:
import React, {Component} from 'react';
import { Link } from 'react-router-dom';
import Book from './Book';
class Home extends Component {
- 显示链接而非按钮的部分:
<div className="open-search">
<Link to="/search">
Add a book
</Link>
</div>
所以,我需要澄清一下,我在这个代码中做错了什么?
请,如果你需要其他代码部分,请告诉我我放在这里,但我认为这些部分足以让你帮助我。
谨致问候。
您需要将按钮包装在Link
中。请参见下文。
<div className="open-search">
<Link to="/search">
<YourButtonComponent/>
</Link>
</div>
通过这样做,<YourButtonComponent/>
的作用方式与文本Add a Book
的作用方式相同。它被封装在Link
中,所以单击<YourButtonComponent/>
和单击Link
是一样的。