Ich bin neu zu reagieren und versuche, dies aufzuheben, indem ich ein paar Tutorials befolge, aber ich habe Probleme, den Dropdown-Listentitel basierend auf dem Wert zu ändern Dropdown-Liste. Ich verwende react bootstrap
, um dies zu versuchen, bin mir aber nicht sicher, wie ich den Titel ändern kann.Drop-down-Titel zum ausgewählten Drop-Down-Wert wechseln
Gerade jetzt, wenn überhaupt das Dropdown ausgewählt ist, rufe ich onDropChange
Funktion an und ich versuche, den Status auf den Wert des Drop-Downs, die so ausgewählt wurde, dann kann ich es im Titel verwenden, aber ich kann Mach das nicht mal zur Arbeit.
Hier ist mein Code so weit:
import React, {PropTypes} from 'react';
import {connect} from 'react-redux';
import * as courseActions from '../../actions/courseActions';
import * as ReactBootstrap from 'react-bootstrap';
class CoursesPage extends React.Component {
constructor (props, context) {
super(props, context);
this.state = {
course: {title: ""},
drplist: {drpval: ""}
};
this.onTitleChange = this.onTitleChange.bind(this);
this.onClickSave = this.onClickSave.bind(this);
this.onDropChange = this.onDropChange.bind(this);
}
onTitleChange (event) {
//console.log("event: ", event)
const course = this.state.course;
// console.log("course: ", course);
course.title = event.target.value;
this.setState({course: course});
}
onClickSave() {
this.props.dispatch(courseActions.createCourse(this.state.course));
}
courseRow(course, index) {
return <div key={index}>{course.title}</div>
}
onDropChange (eventKey) {
console.log("drop change: ", eventKey);
const drplist = this.state.drplist;
drplist.drpval = eventKey;
console.log('title2:', drplist.drpval);
}
render (title) {
let data = [1,2,3,4]
const makeList = function(x) {
return <ReactBootstrap.MenuItem eventKey={x}>{x}</ReactBootstrap.MenuItem>
}
console.log("title:", title)
return (
<div>
<h1>Courses</h1>
{this.props.courses.map(this.courseRow)}
<h2>Add Course</h2>
<input
type="text"
onChange={this.onTitleChange}
value={this.state.course.title} />
<input
type="submit"
value="save"
onClick={this.onClickSave} />
<ReactBootstrap.DropdownButton title="test drop" id="bg-vertical-1" onSelect={this.onDropChange}>{data.map(makeList)}</ReactBootstrap.DropdownButton>
</div>
);
}
}
function mapStateToProps(state, ownProps) {
return {
courses: state.courses
};
}
export default connect(mapStateToProps) (CoursesPage);
------- ------- EDIT
Ich glaube, ich bin etwas, wo immer:
ich machte den Anfangszustand wie folgt aussehen:
this.state = {
course: {title: ""},
drplist: {drpval: "Drop Down"}
};
ich dann den Teil dazu machen geändert:
<ReactBootstrap.DropdownButton title={this.state.drplist.drpval} id="bg-vertical-1" onSelect={this.onDropChange}>{data.map(makeList)}</ReactBootstrap.DropdownButton>
aber title={this.state.drplist.drpval}
scheint nicht den aktualisierten Zustand zu reflektieren ...
Versuchen Sie 'this.onDropChange()' – jmargolisvt
das schien nicht zu funktionieren ... wenn ich das tat, startet es nicht einmal die 'onDropChange' Funktion ... – user2061886