2017-05-12 34 views
0

我做了嵌套对象的状态,在那里我应该用动态键和值更新数据。为此我使用了React的不变性帮手设置了操作。react setState无法正常工作

我的示例代码:

var update = require('react-addons-update'); 

var myState = update(this.state, { 
    data: {[dynamic_keys]: {$set: dynamic_values}} 
}); 

this.setState(myState); 

问题的setState没有更新一次中的状态,两次点击它正在更新状态,而不是在一个..什么是处理这个问题的最好办法?或者是否有任何其他的技巧setState在反应?

+1

这个问题不是特别清楚。如果你能够描述你希望完成什么并提供更多代码(例如,不清楚在哪个函数中执行这个代码),它可能会更有用。 –

+0

@DaveDraper我的代码是在inputbox onChanged上执行的,我的主要担心或者说不满意是为什么这个反应setState立刻不显示状态的变化.. –

+1

你是否在代码中设置了任何断点来检查对setState的调用是否被实际执行在第一次点击?如果这是一个输入元素上的onChanged事件处理函数,那么你确定这个事件实际上是被触发的(你分配了什么类型的输入元素?) –

回答

0

首先“setState()”不能同步工作。由于它是一个异步函数,因此即使在执行之后,也需要很短的时间来设置状态。我将使用setState的第二个参数来使用最佳解决方案。 这里是一个示例。

stateFunction(data){ 
    this.setState({ 
     data 
     }, 
     () => {console.log(this.state.data) 
    }) 
}