猿问

react setState 状态更改

  addEditChange(e,key){

        let that = this;

        let add_edit_form = that.state.add_edit_form;

            add_edit_form[key] = e.target.value;

        that.setState({

            add_edit_form:add_edit_form

        })

        console.log(that.state.budget_form);

    }

    

    

    我 setState  add_edit_form  为啥budget_form里面的值也会变

    


ITMISS
浏览 781回答 3
3回答

慕村225694

典型的shallow copy跟deep copy(某个地方add_edit_form 等于 budget_form了), 你要改变的话最好用import update from 'react-addons-update';...const add_edit_form = update(budget_form, {a: {$set: 'b'}})//或者更新自己const add_edit_form = update(this.state.add_edit_form, {a: {$set: 'b'}})//新的add_edit_form是独一无二的,不回牵扯到之前的referencethis.setState({add_edit_form})

慕婉清6462132

你的budget_form是不是就是add_edit_form

慕丝7291255

console.log(that.state.budget_form);  设置之前查看值that.setState({            add_edit_form:add_edit_form},()=>{ console.log(that.state.budget_form);  设置之后查看值  })看打印的是否一样
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答