Javascript 更改后,状态不会在“选择列表”选项卡中更新

Javascript 更改后,状态不会在“选择列表”选项卡中更新,javascript,twitter-bootstrap,reactjs,Javascript,Twitter Bootstrap,Reactjs,我使用在我的页面上的选项卡中显示内容,如下所示。我正在映射选项卡内容详细信息的数组,并使用{this.getElementByKey(section.name)将正确的内容拉入: <Tabs activeKey={this.state.activeTabId} onSelect={this.handleTabSelect}> {this.state.sections.map(function(section,i){

我使用在我的页面上的选项卡中显示内容,如下所示。我正在映射选项卡内容详细信息的数组,并使用
{this.getElementByKey(section.name)
将正确的内容拉入:

<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>


//getElementByKey method

getElementByKey: function(name){

    switch(name) {
        case "EditStudentBasicDetails":
            return <EditStudentBasicDetails studentId={this.state.studentId} sectionData={this.state.studentData.activeData.basicDetails} />;
        case "EditStudentAgentsInfo":
            return <EditStudentAgentsInfo  studentId={this.state.studentId} sectionData={this.state.studentData.activeData.agentsInfo} />;
        case "EditStudentCaseNotes":
            return <EditStudentCaseNotes studentId={this.state.studentId} sectionData={this.state.studentData.activeData.caseNotes}/>;
        case "EditStudentRegistration":
            return <EditStudentRegistration studentId={this.state.studentId} sectionData={this.state.studentData.activeData.registration} />;
        case "EditStudentContactDetails":
            return <EditStudentContactDetails studentId={this.state.studentId} sectionData={this.state.studentData.activeData.contactDetails} />;
        case "EditStudentAttendance":
            return <EditStudentAttendance studentId={this.state.studentId} sectionData={this.state.studentData.activeData.attendance} />;
        case "EditStudentSENDetails":
            return <EditStudentSENDetails studentId={this.state.studentId} sectionData={this.state.studentData.activeData.SENDetails} />;

        case "EditStudentSchoolHistory":
            return <EditStudentSchoolHistory studentId={this.state.studentId} sectionData={this.state.studentData.activeData.schoolHistory} />;
        case "EditStudentDocuments":
            return <EditStudentDocuments
                studentId={this.state.studentId}
                sectionData={this.state.studentData.activeData.documents.docsData}
                addedData={{"docsEventsLog": this.state.studentData.activeData.documents.docsEventsLog}}
            />;
        default:{

        }
    }

},
但是当状态更改时,选项卡不会刷新,有人能告诉我如何更新组件吗

更新:

这是我的下拉包装组件:

onSelect: function(res){
    var data = {
        filterName: this.props.columnName,
        filterVal: res.objVal
    };
    this.setState({
        value: res.objVal
    });
    this.props.handleSelect(data);
},

render: function() {

    return (
        <Dropdown className={this.props.className}
                  defaultValue={dropdownDefaultValue}
                  ddUid={this.props.ddUid}
                  emptyValId={this.props.emptyValId}
                  emptyVal={this.props.emptyVal}
                  label={this.props.label}
                  labelClassName={this.props.labelClassName}
                  wrapperClassName={this.props.wrapperClassName}
                  handleSelect={this.onSelect}
                  isUseFormGroup={this.props.isUseFormGroup}
                  isEmptyValUsed={isEmptyValUsed}
                  options={dropdownOptions}
                  optLabelCol={this.props.optLabelCol}/>
    );

}
onSelect:function(res){
风险值数据={
filterName:this.props.columnName,
filterVal:res.objVal
};
这是我的国家({
值:res.objVal
});
this.props.handleSelect(数据);
},
render:function(){
返回(
);
}
以下是我的选择列表:

var DropdownComponent = React.createClass({

componentWillReceiveProps: function(nextProps){
    this.setState({
        value: nextProps.defaultValue
    });
},

getDefaultProps: function() {
  return {
      defaultValue: 0,
      ddUid: _.uniqueId('dropdown_'),
      opUid: _.uniqueId('option_'),
      className: "",
      label: '',
      labelClassName: '',
      wrapperClassName: '',
      options: [],
      optValCol: "id",
      optLabelCol: "caption",
      emptyValId: 0,
      emptyVal: "...",
      isUseFormGroup: true,
      isEmptyValUsed: true,
      handleSelect: function(res){}
    }
},

getInitialState: function(){
    return {
        value: 1
    }
},

onSelect: function(){
    var objRef = Object.keys(this.refs)[0];
    var objVal = this.refs[objRef].getValue();
    var data = {
        objRef: objRef,
        objVal: objVal
    };
    this.setState({value: objVal});
    this.props.handleSelect(data);
},

render: function() {
    if(this.props.options.length > 0) {
        var options = [], label = '', value = '';
        var emptyValOption = this.props.isEmptyValUsed ?
            <option value={this.props.emptyValId}>{this.props.emptyVal}</option> : '';
        for (var i = 0; i < this.props.options.length; i = i + 1) {
            value = this.props.options[i][this.props.optValCol];
            label = this.props.options[i][this.props.optLabelCol];
            options.push(<option key={this.props.opUid + '_' + value} value={value}>{label}</option>);
        }

        return (
            <Input type='select' label={this.props.label}
                   defaultValue={this.props.defaultValue}
                   ref={this.props.ddUid}
                   className={this.props.className}
                   labelClassName={this.props.labelClassName}
                   wrapperClassName={this.props.wrapperClassName}
                   standalone={!this.props.isUseFormGroup}
                   onChange={this.onSelect}>
                {emptyValOption}
                {options}
            </Input>
        );
    } else {
        return (
            null
        );
    }
}
var dropdownpomponent=React.createClass({
组件将接收道具:函数(下一步){
这是我的国家({
值:nextrops.defaultValue
});
},
getDefaultProps:function(){
返回{
默认值:0,
ddUid:u.uniqueId('dropdown'),
opUid:u0.uniqueId('option_0'),
类名:“”,
标签:“”,
labelClassName:“”,
包装器类名称:“”,
选项:[],
optValCol:“id”,
optLabelCol:“标题”,
emptyValId:0,
emptyVal:“…”,
isUseFormGroup:对,
是的,
handleSelect:function(res){}
}
},
getInitialState:函数(){
返回{
价值:1
}
},
onSelect:function(){
var objRef=Object.keys(this.refs)[0];
var objVal=this.refs[objRef].getValue();
风险值数据={
objRef:objRef,
objVal:objVal
};
this.setState({value:objVal});
this.props.handleSelect(数据);
},
render:function(){
如果(this.props.options.length>0){
变量选项=[],标签='',值='';
var emptyValOption=this.props.isemptyvalued?
{this.props.emptyVal}:'';
对于(变量i=0;i

})

能否提供TableDropdown实现?能否提供TableDropdown实现?
var DropdownComponent = React.createClass({

componentWillReceiveProps: function(nextProps){
    this.setState({
        value: nextProps.defaultValue
    });
},

getDefaultProps: function() {
  return {
      defaultValue: 0,
      ddUid: _.uniqueId('dropdown_'),
      opUid: _.uniqueId('option_'),
      className: "",
      label: '',
      labelClassName: '',
      wrapperClassName: '',
      options: [],
      optValCol: "id",
      optLabelCol: "caption",
      emptyValId: 0,
      emptyVal: "...",
      isUseFormGroup: true,
      isEmptyValUsed: true,
      handleSelect: function(res){}
    }
},

getInitialState: function(){
    return {
        value: 1
    }
},

onSelect: function(){
    var objRef = Object.keys(this.refs)[0];
    var objVal = this.refs[objRef].getValue();
    var data = {
        objRef: objRef,
        objVal: objVal
    };
    this.setState({value: objVal});
    this.props.handleSelect(data);
},

render: function() {
    if(this.props.options.length > 0) {
        var options = [], label = '', value = '';
        var emptyValOption = this.props.isEmptyValUsed ?
            <option value={this.props.emptyValId}>{this.props.emptyVal}</option> : '';
        for (var i = 0; i < this.props.options.length; i = i + 1) {
            value = this.props.options[i][this.props.optValCol];
            label = this.props.options[i][this.props.optLabelCol];
            options.push(<option key={this.props.opUid + '_' + value} value={value}>{label}</option>);
        }

        return (
            <Input type='select' label={this.props.label}
                   defaultValue={this.props.defaultValue}
                   ref={this.props.ddUid}
                   className={this.props.className}
                   labelClassName={this.props.labelClassName}
                   wrapperClassName={this.props.wrapperClassName}
                   standalone={!this.props.isUseFormGroup}
                   onChange={this.onSelect}>
                {emptyValOption}
                {options}
            </Input>
        );
    } else {
        return (
            null
        );
    }
}