组件状态更改后更新Redux

时间:2017-09-06 19:06:28

标签: reactjs redux

仍在学习正确使用Redux。我已经在这里待了一个小时,需要帮助。 我想通过其子功能组件更新有状态组件的状态。之后我想激活一个使用Redux操作来更新商店的类方法。我试图让这两件事按顺序发生,但是状态变化在它解决的方法之前是不可访问的。

如果更新本地类状态,如何激活redux操作?

我的主要问题是状态更新AFTER handleMiniChange发生,这样Store中的完整日期总是历史记录中的一个事件(即,我需要与下拉列表交互两次,以便Redux注册第一个行动,然后总是落后一步。

我尝试了this.forUpdate和this.componentWillUpdate但是我遇到了无限循环。(也许我做错了??)

请注意" update_field"是还原操作,负责更新商店。

我的代码:

Private Sub myItem_Open_SentonBehalf_Test()

Dim oExpl As Explorer
Dim myItem As mailitem

Set oExpl = ActiveExplorer
Set myItem = CreateItem(olMailItem)
' Do not display

If oExpl.CurrentFolder.store = "account@outlook.com" Then

    Debug.Print "myItem.SentOnBehalfOfName:" & "x " & myItem.SentOnBehalfOfName & " x"
    myItem.SentOnBehalfOfName = "sent@behalf.com"
    Debug.Print "myItem.SentOnBehalfOfName:" & "x " & myItem.SentOnBehalfOfName & " x"

    ' be careful to put this after updating SentOnBehalfOfName
    myItem.Display
    ' Manually display the From field to see the updated entry

Else

    Debug.Print "Wrong path."

End If

ExitRoutine:
    Set myItem = Nothing
    Set oExpl = Nothing

End Sub

1 个答案:

答案 0 :(得分:2)

这里的问题是setState是异步操作 这意味着在您致电setState之后,您无法确定何时确切地更新状态以及何时可以在其他处理程序中使用新状态。
一种解决方案是使用setState callback function并在回调中调用第二个处理程序。

this.setState({ params }, this.secondHandler)