反应setState()回调问题,无法访问输出变量

时间:2019-09-24 06:13:39

标签: reactjs dom event-handling target setstate

在下面的代码中,我无法在setState()的回调内部访问console.log(event)。

handleChange(event){
    let a = event
    console.log(event)
    this.setState({
        [event.target.name] : event.target.value,
    },()=>{
        console.log(event)
        // console.log("test",this.state)
    })
}

3 个答案:

答案 0 :(得分:3)

您没有将事件传递给回调,这就是您无法访问它的原因。像这样更改代码:

handleChange(event){
    let a = event
    console.log(event)
    this.setState({
        [event.target.name] : event.target.value,
    },(event)=>{
        console.log(event);
    })
}

希望这会有所帮助!

答案 1 :(得分:0)

this.setState({name: e.target.value}, ()=> {
  console.log(this.state.name)
})

希望这可以解决问题。

答案 2 :(得分:0)

您好,请检查此link

 handleChange(e) {
            let name = e.target.name;
            let value = e.target.value;
            this.setState({ name: value })
          }