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里面的值也会变
3 回答

慕村225694
TA贡献1880条经验 获得超4个赞
典型的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是独一无二的,不回牵扯到之前的reference
this.setState({add_edit_form})

慕丝7291255
TA贡献1859条经验 获得超6个赞
console.log(that.state.budget_form); 设置之前查看值
that.setState({
add_edit_form:add_edit_form
},()=>{
console.log(that.state.budget_form); 设置之后查看值
})
看打印的是否一样
添加回答
举报
0/150
提交
取消