Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 仅当我从api请求获得响应时,才将路由器链接反应到下一个视图_Reactjs_Fetch Api_React Router Dom - Fatal编程技术网

Reactjs 仅当我从api请求获得响应时,才将路由器链接反应到下一个视图

Reactjs 仅当我从api请求获得响应时,才将路由器链接反应到下一个视图,reactjs,fetch-api,react-router-dom,Reactjs,Fetch Api,React Router Dom,所以我使用的是react路由器dom,在这里,当我点击这个链接时,它应该会触发一个带有api请求的函数。我想做的是,在我从这个函数中发出的请求中得到响应之前,不要移动到它链接到的下一个组件 postFinal = () =>{ fetch('', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: }) }

所以我使用的是react路由器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>
postfail=()=>{
取(“”{
方法:“POST”,
标题:{
“内容类型”:“应用程序/json”,
},
正文:
})
}
完成

在这种情况下,不要使用link,而是使用普通div并使用
历史记录。按
导航到预定路线

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>
postfail=()=>{
取(“”{
方法:“POST”,
标题:{
“内容类型”:“应用程序/json”,
},
正文:
}).然后(()=>{
this.props.history.push(“/itemSelection/Confirmation”)
})
}
完成

使用
路由器
反应路由器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);
从“React”导入React;
从“react router dom”导入{withRouter}
类Home扩展了React.Component{
期末考试后=()=>{
取(“”{
方法:“POST”,
标题:{
“内容类型”:“应用程序/json”,
},
正文:
}).然后(s=>s.json())
。然后(数据=>{
this.props.history.push('/itemSelection/Confirmation')//这将重定向
})
}
render(){

这是您的新链接

} } 使用路由器导出默认值(主);
witRouter将向您的组件添加历史道具,这些道具将用于在api成功时naivgate