Noob在这里,我有一个表单,可以在传递道具时正确显示数据。检查,工作正常。我希望“编辑”按钮能够(临时)通过更改提醒数据。最后,数据将被保存。保存数据不是问题。
当我第一次单击“编辑”按钮时,我得到一个空数组。我再次单击,并获得所做更改的正确数据...
我只是有点卡住...谢谢!
不能粘贴代码,所以这是一个链接
答案 0 :(得分:1)
问题是setState
有点异步,您没有等待它。检出docs:
setState()并不总是立即更新组件。它可能会批量更新或将更新推迟到以后。
但是可以提供回调:
setState(updater[, callback])
将您的代码更改为类似的代码(未经测试的代码):
setBookState = (e, item) => {
e.preventDefault();
this.setState({
title: item.title,
author: '',
subject:'',
descriptionOrsummary: '',
errors: {},
...item
}, () => {
alert(JSON.stringify(this.state))
console.log(this.state)
})