如何更新通过 React 路由器传递的状态 link

How to update state that is passed through react router link

所以我正在使用 react-router,在我用 Link 从 page1 发送一些状态到 page2

<Link
  to={{
    pathname: `/dashboard/edit/${resort.id}`,
    state: { resort: resort },
  }}
  style={{ textDecoration: 'none', color: 'black' }}
>
  <i
    className="fas fa-edit db-icon"
    style={{ background: 'rgb(12, 177, 12)', color: 'black' }}
  ></i>
</Link>;

当我进入第 2 页时,如何更新此状态,我试过使用 this.setState,但这不起作用,我试过像下面那样解构发送过来的状态,但没有成功'也不工作

constructor() {
  super();
  this.state = {
    title,
    price,
    desc,
    img,
    smoking,
    guests,
    featured,
  } = this.props.location.state.resort;        
}

有什么建议吗?

NEVER mutate this.state directly

这样试试:

constructor() {
  super();
  this.state = { resort: {} };      
}

componentDidMount = () => {
  this.setState({resort: this.props.location.state.resort});
} 

考虑使用 componentDidMount 生命周期挂钩并使用 setState 将这些值设置为组件 state 像这样

像这样

constructor() {
  super();
  this.state = {
    resort: {}
  }
}

compoonentDidMount() {
  this.setState({ resort: this.props.location.state.resort })
}