所以我使用的是react-router-dom,在这里,当我单击此链接时,它将触发带有api请求的函数。我想做的就是不要移动到与之链接的下一个组件,直到从该函数中发出的请求得到响应为止
postFinal = () =>{
fetch('', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body:
})
}
<div className="row">
<Link to={`/itemSelection/Confirmation`} className="btn" onClick={this.postFinal}>DONE</Link>
</div>
答案 0 :(得分:1)
在这种情况下,请使用普通的div并使用history.push
导航至预期的路线,而不是使用链接
postFinal = () =>{
fetch('', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body:
}).then(() => {
this.props.history.push('/itemSelection/Confirmation')
})
}
<div className="row">
<div className="btn" onClick={this.postFinal}>DONE</Link>
</div>
答案 1 :(得分:0)
使用withRouter
中的react-router-dom
import React from 'react';
import {withRouter} from 'react-router-dom'
class Home extends React.Component{
postFinal = () =>{
fetch('', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body:
}).then(s=>s.json())
.then(data=>{
this.props.history.push('/itemSelection/Confirmation') // this will redirect
})
}
render(){
<div>
<p onClick={this.postFinal}>this is your new link</p>
</div>
}
}
export default withRouter(Home);
witRouter会将历史记录道具添加到您的组件中,用于在api成功执行时进行导航