[英]React router Link not working when adding onClick handler to button inside the Link
我有一个表单,当用户按下提交按钮时,我希望对输入数据进行一些计算,然后将用户带到一个新页面。
应用程序.js
function App() {
return (
<>
<ThemeProvider theme={theme}>
<div className="app">
<Navbar />
<main className="content">
<Routes>
<Route path="/" element={<Calculator />} />
<Route path="/results" element={<Return />} />
</Routes>
</main>
</div>
</ThemeProvider>
</>
);
}
计算器.js
function Calculator() {
return (
<>
// Form inputs etc.
<Link to="/results">
<button onClick={handleSubmit}>Click</button>
</Link>
</>
);
}
出于我不知道的原因,当 onClick 事件处理程序未附加到按钮时,链接有效,但当我添加 onClick 事件处理程序时,链接不再有效。 将 onClick 事件处理程序添加到按钮后, handleSubmit
function 运行但链接不会 go 到/results
页面
按钮中的 OnClick 正在阻止事件到 dom 中的父级您可以使用useNavigate
而不是 Link 来处理这个(对于旧版本的 react-router-dom 是useHistory
)
import { useNavigate } from 'react-router-dom';
function Calculator() {
const navigate = useNavigate()
const handleSubmit = () => {
//your code
navigate("/results")
}
return (
<>
// Form inputs etc.
<button onClick={handleSubmit}>Click</button>
</>
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.