Javascript 尝试在react中创建动态表单,数据未传递到组件道具中

Javascript 尝试在react中创建动态表单,数据未传递到组件道具中,javascript,reactjs,ecmascript-6,react-redux,Javascript,Reactjs,Ecmascript 6,React Redux,我试图在react中创建一个动态表单,其中下拉列表的选项由以前从下拉列表中选择的内容决定 在上下文中,这是一个班级预订表,根据所选科目,只能由某些导师预订房间,因此选择 “地理”将用地理导师列表填充导师下拉列表。 我已经包括了预订表的代码,这是一个模式。我将通过将选项传递到一个下拉组件中,该组件创建一个对象并从一个对象数组生成选项 选择的主题进入redux状态,然后将相关导师放入变量并传递到下拉组件中 但是,第二个下拉框中没有填充选项。当I console.log时,正确的选项会出现在控制台中,

我试图在react中创建一个动态表单,其中下拉列表的选项由以前从下拉列表中选择的内容决定

在上下文中,这是一个班级预订表,根据所选科目,只能由某些导师预订房间,因此选择 “地理”将用地理导师列表填充导师下拉列表。 我已经包括了预订表的代码,这是一个模式。我将通过将选项传递到一个下拉组件中,该组件创建一个对象并从一个对象数组生成选项

选择的主题进入redux状态,然后将相关导师放入变量并传递到下拉组件中

但是,第二个下拉框中没有填充选项。当I console.log时,正确的选项会出现在控制台中,但似乎不会传递到下拉列表中

请你告诉我哪里出了问题

  import _ from 'underscore';
  import React from 'react';
  import {render} from "react-dom";
  import Modal from 'react-responsive-modal';
  var {connect} = require('react-redux');
  var actions = require('actions');
  import Base from 'Base'
  import TextInput from 'TextInput';
  import Dropdown from 'Dropdown';

  class RoomBookingForm extends Base {
    constructor(props) {
    super(props);
  }

      onCloseModal = () => {
      this.props.onClose();
    };

    render() {
      //gets the list of tutors
      let tutorOpts = _.where(this.props.tutors, {subject: this.props.subjectSelected})
      return (
        <Modal open={this.props.open} onClose={this.onCloseModal} little>
            <div className="modal-header-left">
              <h5>Create New Class </h5>
            </div>
            <div className="modal-content-container">
              <form>
                <TextInput type="text" name="name" labelText="Class Name"/>
                <Dropdown model="subjectSelected" labelText="subject" options={this.props.subjects}></Dropdown>
                <Dropdown model="tutorSelected" labelText="tutors" options={tutorOpts}></Dropdown> //tutors passed in here
                <button onClick={this.onCloseModal}>Save</button>
              </form>
            </div>
        </Modal>
      )
    }
  };

  const mapDispatchToProps = (dispatch) => {
  }

  const mapStateToProps = (state, ownProps) => {
    return {
      tutors: state.tutors,
      subjects: state.subjects,
      subjectSelected: state.form.subjectSelected
    }
  }
   export default connect(mapStateToProps, mapDispatchToProps)(RoomBookingForm);
从“下划线”导入; 从“React”导入React; 从“react dom”导入{render}; 从“反应响应模态”导入模态; var{connect}=require('react-redux'); var actions=要求(“操作”); 从“Base”导入Base 从“TextInput”导入TextInput; 从“下拉列表”导入下拉列表; 类RoomBookingForm扩展了基{ 建造师(道具){ 超级(道具); } onCloseModal=()=>{ this.props.onClose(); }; render(){ //获取导师列表 让tutorOpts=.[u.where(this.props.tutors,{subject:this.props.subjectSelected}) 返回( 创建新类 //老师从这里经过 拯救 ) } }; const mapDispatchToProps=(调度)=>{ } const mapStateToProps=(state,ownProps)=>{ 返回{ 导师:州立大学,导师, 主题:国家主题, subjectSelected:state.form.subjectSelected } } 导出默认连接(mapStateToProps、mapDispatchToProps)(RoomBookingForm);
如果您可以提供一个带有适当虚拟数据的codepen/jsfiddle游乐场,我可以帮忙。这可能是因为您的组件没有重新渲染。我会说,只要你选择了主题,就发一份快讯。这将更新您的redux状态并重新呈现组件。哪个库提供了
下拉列表
?如果没有这些信息,我真的不可能肯定地说什么。代码意味着
下拉列表
以某种方式更改了redux存储-是这样吗?请在
此.state中的各个下拉列表中跟踪您的信息。这样,React就可以处理动态内容更改。Dropdown是我自己制作的组件,它只需要一个对象数组,并在select中创建选项。无论选择哪一个选项,都会将该值放入redux存储。目前正在工作,但稍后将尝试执行分派,如果这不起作用,我将整理一个JSFIDEL并发布它。