鍍金池/ 問答/PHP  HTML/ react setState 狀態(tài)更改

react setState 狀態(tài)更改

  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里面的值也會(huì)變
    
回答
編輯回答
毀了心

你的budget_form是不是就是add_edit_form

2018年5月5日 06:58
編輯回答
淡墨

典型的shallow copy跟deep copy(某個(gè)地方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是獨(dú)一無二的,不回牽扯到之前的reference

this.setState({add_edit_form})
2018年9月7日 09:41
編輯回答
我不懂
console.log(that.state.budget_form);  設(shè)置之前查看值
that.setState({
            add_edit_form:add_edit_form
},()=>{
 console.log(that.state.budget_form);  設(shè)置之后查看值  
})

看打印的是否一樣

2017年3月13日 20:08