在setState中使用回调函数

时间:2019-07-25 16:50:59

标签: reactjs

我想将setState和 立即获取更新的值。我将需要此值是 传递给函数。下面的代码不起作用。 console.log没有显示任何内容。 console.log没有被点击。

如何在setState中使用回调?

    searchForInvoicesByDates(startDate, endDate){

          this.setState({
            processInvoiceIds: filteredResult
          }, () => {
            console.log("This is Awesome");
            console.log(this.state.processInvoiceIds);    
            this.searchByInvoiceIds_ReturnsProducts(this.state.processInvoiceIds)        
        })

    }

1 个答案:

答案 0 :(得分:0)

根据我所能告诉的(我已提供的信息),我无法使用等效的代码来重现您的问题。使用新值访问并执行日志语句。

class Example extends React.Component {
  state = {
    processInvoiceIds: []
  }

  componentDidMount() {
    this.setState({
      processInvoiceIds: [1, 2, 3],
    }, () => {
      console.log("This is awesome");
      console.log(this.state.processInvoiceIds);
    })
  }
  render () {
   return null
  }
}

ReactDOM.render(<Example/>, document.getElementById('main'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="main"></div>