我正在使用api更新表单数据。因此,我创建了一个表单组件,将数据呈现到表单中。我创建了一个“ device_detail”组件。在此组件中,我添加了一个“更新”按钮,该按钮链接到update_device_detail组件。在我的update_device_detail组件中,我有一个方法handleUpdate:
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})
}
}
我已将初始状态设置为redirect: false
。
在render()方法中,我做了一个条件语句:
if (this.state.redirect) {
return <Redirect to={`/device/${this.state.items.id}`} />
}
else {
return(
...)
}
重定向将我带到正确的页面,但更新的数据未反映在详细信息页面上。但是当我手动按下刷新按钮时,它会反映出来。有没有办法让我强制刷新正在重定向的页面,或者有其他方法可以实现相同的目的。