【发布时间】:2018-06-07 08:51:58
【问题描述】:
我的输入标签带有id="Table" 和状态动态表。
this.state = {
dynamictable: ""
}
<input type="text" className="form-control box_ip" placeholder="Table"
id="Table" value={this.state.dynamictable}/>
我有一个按钮next,点击按钮我正在调用一个函数updateEditorData()
updateEditorData() {
this.setState({
dynamictable: "Hello"
});
this.table.forEach((id) => {
let element = document.getElementById(id);
if (element != undefined) {
if (element.value != undefined && element.value != '') {
this.replaceText(id, element.value);
}
}
})
}
第一次点击next this.replaceText() 没有被调用,因为 element.value 是 "" 但对于第二种类型 element.value 即将到来 "hello" 但为什么是第一次呢没有调用那个函数,动态表的初始状态是""?
我只需要第一次调用this.replaceText(),这意味着第一次点击next button我需要将空字符串的状态更新为“hello”
提前致谢。请指导我。
【问题讨论】:
-
this.setState()doc quote: "setState() 并不总是立即更新组件。它可能会批量更新或推迟更新。"该文档还包含您的问题的解决方案。 -
有什么原因,你没有使用 render 方法来用正确的更新数据渲染你的表格吗?
标签: javascript reactjs react-redux