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