Ich versuche, zwei Dropdown-Menüs in ReactJS-Komponente zu entwickeln, die zweiten Dropdown-Werte hängen vom ersten Dropdown-Wert ab. Wenn sich der erste Dropdown-Wert ändert, ändern sich die zweiten Dropdown-Werte basierend auf dem ersten Dropdown-Wert. Wie Länder und Staaten. Das folgende ist das Code-Snippet. kannst du mir helfen, wie man es umsetzt?ReactJS: Interkommunikation zwischen zwei dropdowns
Dank
<script type="text/jsx">
/*** @jsx React.DOM */
var data = [
{key:"eStatements", value:"eStatements"},
{key: "mobileApp", value:"Mobile App"},
{key: "billPay", value:"Bill Pay"},
{key: "remoteDeposit", value:"Remote Deposit"},
{key: "onlineBanking ", value:"Online Banking"},
{key: "P2P", value:"P2P"}
];
var myOptions = [];
var DropdownApp = React.createClass({
render:function(){
return (
<div>
<SelectApp data={this.props.data} name={this.props.name}/>
</div>
);
}
});
var SelectApp = React.createClass({
getInitialState:function(){
return {myOptions : {"signUp" : "Sign Up"}};
},
handleSelectChange : function(e){
var product = e.target.value;
if("eStatements" == product) {
myOptions = [{key: "signUp" , value: "Sign Up"}];
} else if("Mobile App" == product) {
myOptions = [{key: "noOfLogins" , value: "Number of Logins"}];
} else if("Bill Pay" == product) {
myOptions = [{key: "noOfPayments" , value: "Number of Payments"},{key: "addNewPayeeAndPay" , value: "Add New Payee"}];
} else if("Remote Deposit" == product) {
myOptions = [{key: "noOfDeposits" , value: "Number of Deposits"}];
} else if("Online Banking" == product) {
myOptions = [{key: "noOfLogins" , value: "Number of Logins"}];
}else if("P2P" == product) {
myOptions = [{key: "noOfPayments" , value: "Number of Payments"}, {key: "addNewPayeeAndPay" , value: "Add New Payee"}];
}
this.setState({myOptions: myOptions});
},
render: function(){
var opt = this.props.data.map(function(d){
return (<OptionsApp key={d.key} value={d.value}/>);
});
return (
<div>
<div>
<select name={this.props.name} id={this.props.name} onChange={this.handleSelectChange}>
{opt};
</select>
</div>
<div>
<select name={this.state.myOptions} >
{opt};
</select>
</div>
</div>
);
}
});
var OptionsApp = React.createClass({
render : function(){
return (
<option value={this.props.key}> {this.props.value}</option>
);
}
});
React.renderComponent(<DropdownApp data={data} name="my name"/>, document.getElementById("dropDown"))
</script>
Wenn Ihre Optionen wie Länder aufeinander angewiesen sind und Staaten, könnten Sie Daten strukturieren. Mit z.B. die Länder als Schlüssel und für jedes Land eine Reihe von z.B. gibt als Wert an. Die erste Auswahl rendert dann den Wert von 'Object.keys (data)' und die zweite den entsprechenden Wert 'data [key]'. Aktualisieren Sie einfach die zweite auf OnChange der ersten. – Scarysize