在reactjs中重定向后如何获取<redirect ... =“”>刷新页面

时间:2019-02-07 10:37:19

标签: javascript reactjs react-router-v4

我正在使用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(
       ...)
  }

重定向将我带到正确的页面,但更新的数据未反映在详细信息页面上。但是当我手动按下刷新按钮时,它会反映出来。有没有办法让我强制刷新正在重定向的页面,或者有其他方法可以实现相同的目的。

0 个答案:

没有答案