我需要一个click函数,以便通过助焊剂动作来更新存储,还需要更新组件的状态。
例:
我有一个表单字段,其中包含故事的数据,还有一个状态,用于说明表单的模式是否已打开。
// Initial state
return {
story: this.props.story,
modalIsOpen: true
}
-
// Click function to close the modal
closeModal: function(e){
e.preventDefault();
story.update(newStory) // <== Flux action to update the story, which then updates this component
this.setState({modalIsOpen: false}) // <== To actually close the modal
}
但是,无论我把什么放在首位,似乎都没有。因此,如果我先拥有
story.update(newStory)
,它将执行该命令,而不执行this.setState({modalIsOpen: false})
反之亦然...
有任何想法我在做什么错或如何执行两者吗?
最佳答案
this.setState()
之后,您不需要story.update()
。
可能是在执行动作调用之后,在执行this.setState()
之前重新渲染了组件。
流程应为:
您的组件调用story.update()
商店监听调度程序并进行更新
商店发出变化
您的组件倾听变化
组件内部响应存储更新的方法setState( {modalIsOpen: false} )
。
同样,您的story
似乎不需要处于状态:您的组件可以简单地呈现this.props.story
。
关于javascript - react setState和通量 Action 更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37004843/