【发布时间】:2025-12-07 02:15:02
【问题描述】:
我正在使用 React JS 和 React Router。
这是我的代码:
这里是 SomeComponent 文件:
class SomeComponent extends React.Component{
//some code
render(){
return(
<div className="somecomponent">
<h1>some heading</h1>
</div>
);
}
}
export default SomeClass;
这是我的 App.js 文件:
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import SomeComponent from './components/SomeComponent';
class SomeClass extends React.Component{
constructor(props){
//some code
}
render(){
return(
<Router>
<form onSubmit={this.handleSubmit}>
<h1>ABC</h1>
<label htmlFor="name">Your name</label>
<input className="name" type="text" placeholder="Enter your name" />
<button onClick={() => this.props.history.push("/somepath/component")}>Click Me</button>
</form>
<Switch>
<Route exact path="/somepath/component" component={SomeComponent} />
</Switch>
</Router>
);
}
}
export default SomeClass;
这是我的 index.js 文件:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { BrowserRouter } from 'react-router-dom';
ReactDOM.render(
(
<BrowserRouter>
<App />
</BrowserRouter>
),
document.getElementById('root')
);
布局:
这是 App.js 组件:
这是以下链接中的组件:“/somepath/component”:
我的问题:
当我单击按钮时,它会将我引导至以下链接的页面:“/somepath/component” 但是,问题是页面出现在上一页的下方。
在导航到新页面后,我想让上一个页面消失。
【问题讨论】:
-
嗨,我有点迷失在你包含的那些代码 sn-ps 中,但我认为问题出在你的
App.js文件中。带有表单的部分将与每个页面一起呈现,因为不存在不呈现该页面的任何条件。要解决此问题,您可以将此表单逻辑提取到YourNewFormComponent并将类似<Route path="/form-page" component={YourNewFormComponent} />的内容添加到App.ts。
标签: javascript reactjs react-redux react-router react-hooks