reactjs - 如何通过单击 Reactjs 中的图像打开页面?
问题描述
在我的 React 项目中,我创建了某些带有图像的卡片。当单击该图像时,它预计会在新窗口/页面中打开该特定产品的详细信息,但是这不会发生。请看下面的代码。
项目.js
<Link to={{ pathname: `/details/${data.id}`}}>
<MDBCardImage className="img-fluid" src={data.img}
waves style={{borderRadius:'10px'}}
style={{height:'300px', width:'310px'}}
/>
</Link>
应用程序.js
<BrowserRouter>
<Switch>
<Route path="/details/:id" component={Details}/>
</Switch>
</BrowserRouter>
这是正确的方法还是我必须做一些改变。任何解决方案?
解决方案
这是您在沙盒中改进的代码。
index.js
ReactDOM.render(
<BrowserRouter>
<TransitionGroup>
<CSSTransition timeout={280} classNames="fade">
<BrowserRouter>
<Switch>
<Route path="/" exact component={App} />
<Route path="/details/:id" exact component={Details} />
</Switch>
</BrowserRouter>
</CSSTransition>
</TransitionGroup>
</BrowserRouter>,
document.getElementById("root")
);
应用程序.js
return (
<div>
<Layout fixedHeader>
<div className="menu">
<a href="/">
<span>Home</span>
</a>
<a href="#section_1">
<span>Projects</span>
</a>
</div>
</Layout>
<Content style={{ width: "100%" }}>
<Projects />
</Content>
</div>
);
项目.js
<Link to={{ pathname: `/details/${data.id}`, data: data }}>
<MDBCardImage
className="img-fluid"
src={data.img}
style={{
height: "300px",
width: "310px",
borderRadius: "10px"
}}
/>
</Link>
详细信息.js
render() {
const { data } = this.props.location;
return (
<div style={{ marginTop: "20px" }}>
<h3>{data.title}</h3>
<img src={data.img} alt="git-icon" style={{ height: "200px" }} />
</div>
);
}
推荐阅读
- angular - 如何使用 Jasmine 使用 window.location.href.substring() 和 toPromise().then() 测试 Angular 9 服务的封面?
- ffmpeg - ffmpeg concat + scale2ref,降低帧率
- c++ - 为什么我们可以使用指针访问私有数据成员类,而不使用类中的其他成员的成员朋友函数?
- django - 无法在模板中插入表单:“WSGIRequest”对象没有属性“get”
- apt - 使用 dpkg 安装包后,APT-cache 策略返回错误版本
- python - 无法连接到 Google Colab 中的 X 服务器
- c++ - 时间.h | 如果时区在两者之间更改,则 time(0) 和 localtime(time_t) 组合返回上一个时间
- javascript - 页面需要刷新才能第二次获取数据以获取表格中的Javascript和ajax数据
- session - 即使在 dyno 每天重新启动后,我如何让自己登录 heroku(chromedriver)?
- abap - BAPI_SALESORDER_CHANGE 引发类型异常