Javascript 我怎样才能得到<;重定向/&燃气轮机;在reactjs中重定向后刷新页面
我正在使用api更新表单数据。因此,我创建了一个表单组件,用于将数据呈现到表单中。我已经创建了一个“设备详细信息”组件。在这个组件中,我添加了一个“更新”按钮,它链接到更新设备细节组件。在我的update_device_detail组件中,我有一个方法handleUpdate:Javascript 我怎样才能得到<;重定向/&燃气轮机;在reactjs中重定向后刷新页面,javascript,reactjs,react-router-v4,Javascript,Reactjs,React Router V4,我正在使用api更新表单数据。因此,我创建了一个表单组件,用于将数据呈现到表单中。我已经创建了一个“设备详细信息”组件。在这个组件中,我添加了一个“更新”按钮,它链接到更新设备细节组件。在我的update_device_detail组件中,我有一个方法handleUpdate: handleUpdate(event) { event.preventDefault() const ied = this.props.match.params.id if (this.validateMai
handleUpdate(event) {
event.preventDefault()
const ied = this.props.match.params.id
if (this.validateMainForm()) {
let elements = this.state.element
let items = this.state.type_items
const data = {
id: items['id'],
name: items['name']
}
console.log('--------final-data before posting-------', data);
axios({
url: 'http://127.0.0.1:8000/api/foo/'+ied+'/update',
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
data: JSON.stringify(data)
})
.then(function(response) {
return response
})
alert('Device Updated Succesfully!!!')
this.setState({redirect: true})
}
}
我已将初始状态设置为重定向:false
在render()方法中,我做了一个条件语句:
if (this.state.redirect) {
return <Redirect to={`/device/${this.state.items.id}`} />
}
else {
return(
...)
}
if(this.state.redirect){
返回
}
否则{
返回(
...)
}
重定向将我带到右侧页面,但更新的数据不会反映在详细信息页面上。但当我手动按下刷新按钮时,它会被反射。是否有一种方法可以强制刷新正在重定向的页面,或者是否有其他方法可以达到同样的效果。如果您将
this.setState({redirect:true})
放在您承诺的中,那会怎么样?因为我可以看到您在收到HTTP响应之前重定向。我不确定这是你的问题的原因,但这已经是一个问题,不需要重新加载。设备详细信息页面上显示的数据在哪里保存、重新使用或某些组件的状态?无论在哪里,您都需要在axios的部分中使用从api接收的数据来更新它。另外,您的setState({redirect:true})
应该位于axios
的内部。否则,即使beofre数据已保存在上,它也会重定向server@VaibhavVishal重定向发生在数据保存到服务器上之前。它起作用了,谢谢you@AnthonyRaymond把这个.setState({redirect:true})放在里面。然后解决了这个问题。如果你把你的this.setState({redirect:true})
放在你承诺的中,那会怎么样呢?因为我可以看到你在收到HTTP响应之前重定向了。我不确定这是你的问题的原因,但这已经是一个问题,不需要重新加载。设备详细信息页面上显示的数据在哪里保存、重新使用或某些组件的状态?无论在哪里,您都需要在axios的部分中使用从api接收的数据来更新它。另外,您的setState({redirect:true})
应该位于axios
的内部。否则,即使beofre数据已保存在上,它也会重定向server@VaibhavVishal重定向发生在数据保存到服务器上之前。它起作用了,谢谢you@AnthonyRaymond将此.setState({redirect:true})放入其中。然后解决了问题