【发布时间】:2020-10-21 19:59:47
【问题描述】:
我已经为 React 建立了一个网站。我的代码在这里https://codesandbox.io/s/3d-tool-zjm5m?file=/src/components/modeling.jsx。我想要的是当用户点击建模选项卡中的“Go upload”按钮时,它会链接到一个新的 upload.jsx 页面,仍然有导航栏。
App.js 代码:
import React, { Component } from 'react'
import Navigation from './components/navigation';
import Header from './components/header';
import About from './components/about';
import Modeling from './components/modeling';
import Resources from './components/resources';
import Team from './components/Team';
import JsonData from './data/data.json';
export class App extends Component {
state = {
landingPageData: {},
}
getlandingPageData() {
this.setState({landingPageData : JsonData})
}
componentDidMount() {
this.getlandingPageData();
}
render() {
return (
<div>
<Navigation />
<Header data={this.state.landingPageData.Header} />
<About data={this.state.landingPageData.About} />
<Modeling data={this.state.landingPageData.Modeling} />
<Resources data={this.state.landingPageData.Resources} />
<Team data={this.state.landingPageData.Team} />
</div>
)
}
}
export default App;
Modeling.jsx 代码:
import React, { Component } from "react";
import Upload from "./upload";
export class Modeling extends Component {
uploadButton = (event) => {
event.preventDefault();
this.props.history.push({
pathname: "/upload"
});
};
render() {
return (
<div id="modeling">
<div className="container">
<div className="row">
<div className="about-text">
<h2>3D MODELING</h2>
</div>
</div>
<div className=" wow fadeInUp slow">
<div className="row pt-5 justify-content-center">
<div className="col text-center">
<h1>
<b>Pick what's right for you </b>
</h1>
</div>
</div>
</div>
<div class="row p-5 p-md-0 pt-md-5 justify-content-around">
<div
class="col-md-5 mb-4 m-md-0 ml-md-5 modern-card card card-body shadow text-center wow fadeIn slow"
data-wow-delay="0.2s"
>
<h2 class="mb-3 blue">
<b>A 3D model from a 2D image.</b>
</h2>
<button
type="button"
class="btn btn-primary go-button"
onclick={this.uploadButton}
>
Go upload
</button>
</div>
<div
class="col-md-5 mr-md-5 modern-card card card-body shadow text-center wow fadeIn slow"
data-wow-delay="0.4s"
>
<h2 class="mb-3 blue">
<b>A virtual tour from a 3D model.</b>
</h2>
<button
type="button"
class="btn btn-primary go-button"
>
Go!
</button>
</div>
</div>
</div>
</div>
);
}
}
export default Modeling;
Can someone stop by give me any suggestions? I have really appreciated it. Thanks!
【问题讨论】:
-
请包含所有相关代码。您能否更新并分享您的路由/导航组件代码,以便我们可以看到您是如何渲染/匹配路由的?
-
NM,我现在看到您的应用没有使用任何导航/路由包。您似乎想要对新路线执行
history.push。 react-router 是一个很好的解决方案(恕我直言)。 TL;DR,将您的应用程序包装在Router中,并将每个“页面”包装在Route中。使用传递的history路由属性命令式导航。如果您尝试这样做但遇到困难,我们可以提供帮助。 -
你的意思是我把 App.js 中的所有东西都改成了路由器?像
-
codesandbox.io/s/3d-tool-zjm5m?file=/src/App.js 我只是对每个“页面”的路径进行了一些更改。但是,Modeling 选项卡中的“Go upload”按钮没有链接到 Upload.jsx。你能给我一些帮助吗?
-
@DrewReese 你能给我一些帮助吗?
标签: javascript reactjs navigation components