【发布时间】:2020-07-27 08:16:45
【问题描述】:
我正在制作一个 React 作品集,其中一个组件将是一个图片库(不用说我是 React 的新手,我想知道,或者我不会问这个问题)。为此,我将使用一个包(react-image-gallery),它允许我自定义多个项目。我已经安装了,它运行良好,但我需要自定义它 - 隐藏缩略图以及“播放”和“全屏”按钮。
根据文档,可以通过状态来实现。问题是我没有这样做,因为应用程序的导航使用了路由器,虽然我很努力,但我无法让状态传递到放置在路由器上的组件中。这是不工作的主要组件(相当于App)的代码:
import "./styles.css";
import {
HashRouter,
NavLink,
Route
} from "react-router-dom";
import React, { Component } from "react";
import Development from "./Development";
import Home from "./Home";
import Intro from "./Intro";
import Media from "./Media";
import StudyCase from './StudyCase';
import Stuff from "./Stuff";
class Main extends Component {
constructor() {
super();
this.state = {
showThumbnails: false
};
}
render() {
return (
<HashRouter>
<div>
<ul className='top-menu'>
<li>
<NavLink className='navs hvr-pulse' to='/'>
Home
</NavLink>
</li>
<li>
<NavLink className='navs hvr-pulse' to='/dev'>
Development
</NavLink>
</li>
<li>
<NavLink className='navs hvr-pulse' to='/media'>
Media
</NavLink>
</li>
<li>
<NavLink className='navs' to='/study-case'>
Study Case
</NavLink>
</li>
</ul>
<span className='bottom-slider'></span>
<div className='content'>
<Route exact path='/' component={Intro} />
<Route path='/dev' component={Development} />
<Route path='/media' component={Media} />
<Route path='/study-case' render={props => (<StudyCase {...this.state} showThumbnails={this.state.showThumbnails}/>)}/>
</div>
</div>
</HashRouter>
);
}
}
export default Main;
一些同事能指出我正在做的错误吗?提前感谢您的可用性。
【问题讨论】:
-
你试过这个:
( ) }/> -
实际上你有 2 条路径相同的路径 '/study-case',你应该每条路径只有一个 Route
-
@HermitCrab,感谢您的提醒。重复就在这里,它是在我在这里复制粘贴代码时制作的。不幸的是,你提出的代码不起作用(这是我之前测试过的东西之一......)。
-
您在
path的study-case中缺少/。试试这个:<Route path="/study-case" render={(props) => <StudyCase showThumbnails={this.state.showThumbnails} />} /> -
@AjeetShah,也谢谢,但问题也不存在(实际上,
/在原始代码中或页面不会呈现)