在执行操作之前,我可以知道反应中的任何未决状态转换吗?

Posted

技术标签:

【中文标题】在执行操作之前,我可以知道反应中的任何未决状态转换吗?【英文标题】:Can i know about any pending state transition in react before performing an operation? 【发布时间】:2017-05-10 18:37:26 【问题描述】:

我必须在我的代码中执行一个操作。此操作涉及从我的状态中获取值。在某些情况下,我的状态返回旧值。是否有任何功能可以帮助我在所有挂起的状态转换完成后触发我的代码?

  save : function()
    //here am using state and it doesnt reflect new value
    saveFunc(this.state.type);

【问题讨论】:

组件生命周期:facebook.github.io/react/docs/react-component.html#updating 【参考方案1】:

你应该使用shouldComponentUpdate()

shouldComponentUpdate() 在接收新道具或状态时在渲染之前调用。默认为 true 初始渲染或使用 forceUpdate() 时不调用此方法。

read more here

所以你可以做的是:

shouldComponentUpdate(nextProps, nextState) 
  if(this.state.type !== nextState.type) 
     // Do what you want
  


希望对你有帮助。

【讨论】:

以上是关于在执行操作之前,我可以知道反应中的任何未决状态转换吗?的主要内容,如果未能解决你的问题,请参考以下文章

linux都有哪些信号不会被阻塞

求高手优化MySQL数据库,数据库反应太慢。

为啥 fetch 返回 promise 未决?

反应中的开关状态不工作不止一次

信号未决与阻塞

阻塞信号