Javascript 组件状态未从触发器更新

Javascript 组件状态未从触发器更新,javascript,reactjs,refluxjs,Javascript,Reactjs,Refluxjs,我正在尝试更新页面组件中的状态数据,回调正在启动,正确的数据将进入每个页面,但编辑的值不显示在我的表格组件中,它显示在可编辑的输入中,但不显示在我的表格单元格中,改为显示编辑前的值 有人能帮我在显示的页面中获取新值吗 我使用选项卡从一个页面切换到另一个页面,每个页面组件都安装在主编辑页面上,如下所示: switch(name) { case "PageName": return <ExamplePageComponent

我正在尝试更新页面组件中的状态数据,回调正在启动,正确的数据将进入每个页面,但编辑的值不显示在我的表格组件中,它显示在可编辑的输入中,但不显示在我的表格单元格中,改为显示编辑前的值

有人能帮我在显示的页面中获取新值吗

我使用选项卡从一个页面切换到另一个页面,每个页面组件都安装在主编辑页面上,如下所示:

 switch(name) {
        case "PageName":
            return <ExamplePageComponent
                    Id={this.state.id} 
                    sectionData={this.state.studentData.sectionData} />;
选项卡组件:

<Tabs activeKey={this.state.activeTabId}  onSelect={this.handleTabSelect}>
                    {this.state.sections.map(function(section,i){
                        return (
                            <Tab
                                eventKey={section.value}
                                title={section.label}
                                key={i}
                                tabClassName="tabs__item"
                            >
                                {this.getElementByKey(section.name)}
                            </Tab>
                        );
                    }, this)}
                </Tabs>
在我调用这个action/store方法的每个页面组件更新中,saveMethod在回调中都有正确的数据

updateStudentData: function(addUpdateData) {
    switch(this.data.dataSectionID){
        case 1:
            var callback = function(){
                StudentDataActions.updateEditStudentPageState(rowDataToSave.studentId, 1)
            }.bind(this);
            Service.saveMethod(rowDataToSave, callback);
            break;
        case 2// etc
我对上述方法的回调是:

setLoadedState: function(data) {

    this.studentData.activeData.sectionName = data;
    this.trigger(this.studentData);
},
我的行动是:

var ApplicationActions = Reflux.createActions([
'routeChange',
'getPageData',
'setLoadedState',
'updatePageDataFilters'
]);

我以此为例,

您是否使用text/jsx作为脚本类型?您的
手柄Abselect
:您首先执行
设置状态
,然后启动操作以更新某些存储
setState
是一个异步操作,因此后面的调用可能还不知道新状态。一般来说,这种由setState和action循环双重触发渲染的方式总是很棘手的。非常感谢您的回复,有没有更好的方法来构造
handleTabSelect
updateStudentData: function(addUpdateData) {
    switch(this.data.dataSectionID){
        case 1:
            var callback = function(){
                StudentDataActions.updateEditStudentPageState(rowDataToSave.studentId, 1)
            }.bind(this);
            Service.saveMethod(rowDataToSave, callback);
            break;
        case 2// etc
setLoadedState: function(data) {

    this.studentData.activeData.sectionName = data;
    this.trigger(this.studentData);
},
var ApplicationActions = Reflux.createActions([
'routeChange',
'getPageData',
'setLoadedState',
'updatePageDataFilters'
]);