【发布时间】:2020-07-02 09:14:04
【问题描述】:
我正在我父亲的网站上制作一个表格,您可以在其中提交有关您的汽车的信息,然后您稍后会收到一封电子邮件,为您提供报价。
无论如何,在表格内有一个选择列表,您可以在其中选择您的汽车品牌,然后还有另一个选择列表提供所选汽车品牌的型号。我有一个包含汽车品牌及其各自型号的 JSON 文件,但我似乎无法让它按照我想要的方式运行。在这个版本的代码中,第二个下拉列表显示了列表中的所有车型,而不仅仅是选定的汽车品牌车型,因为经过多次尝试我无法找出正确的代码。任何帮助将不胜感激!
这是 JSON 文件 carModels.json 的 sn-p
[
{
"brand": "Acura",
"models": [
"2.2CL",
"2.3CL",
"3.0CL",
"3.2CL",
"ILX",
"Integra",
"Legend",
"MDX",
"NSX",
"RDX",
"3.5 RL",
"RL",
"RSX",
"SLX",
"2.5TL",
"3.2TL",
"TL",
"TSX",
"Vigor",
"ZDX"
]
},
{
"brand": "Alfa Romeo",
"models": [
"164",
"8C Competizione",
"GTV-6",
"Milano",
"Spider"
]
},
{
"brand": "AMC",
"models": [
"Alliance",
"Concord",
"Eagle",
"Encore",
"Spirit"
]
},
{
"brand": "Aston Martin",
"models": [
"DB7",
"DB9",
"DBS",
"Lagonda",
"Rapide",
"V12 Vantage",
"V8 Vantage",
"Vanquish",
"Virage"
]
},
{
"brand": "Audi",
"models": [
"100",
"200",
"4000",
"5000",
"80",
"90",
"A3",
"A4",
"A5",
"A6",
"A7",
"A8",
"allroad",
"Cabriolet",
"Coupe",
"Q3",
"Q5",
"Q7",
"Quattro",
"R8",
"RS 4",
"RS 5",
"RS 6",
"S4",
"S5",
"S6",
"S7",
"S8",
"TT",
"TT RS",
"TTS",
"V8 Quattro"
]
},
{
"brand": "Avanti",
"models": [
"Convertible",
"Coupe",
"Sedan"
]
},
{
"brand": "Bentley",
"models": [
"Arnage",
"Azure",
"Brooklands",
"Continental",
"Corniche",
"Eight",
"Mulsanne",
"Turbo R"
]
}
]
我的代码
import React, { Component } from 'react'
import { Col, Button, Form, FormGroup, Label, Input, FormText, Row } from 'reactstrap'
import carModels from "./carModels"
export class carousel extends Component {
constructor(props) {
super(props);
this.state = {
carMake: ''
}
}
handleChange = (event) => {
this.setState({carMake: this.state.carMake = event.target.value });
console.log(this.state.carMake)
};
render() {
return (
<div>
<Input className="inputBrand" type="select" name="carbrand" id="carBrand" onChange={this.handleChange}>
<option>Choose brand</option>
{carModels.map((carBrand, index) => {
return <option>{carBrand.brand}</option>
})}
</Input>
<Input className="inputBrand" type="select" name="carmodel" id="carModel">
<option>Choose model</option>
{carModels.map((carBrand, index) => {
return carBrand.models.map((brandModels, index) => {
return <option>{brandModels}</option>
})
})}
</Input>
</div>
【问题讨论】:
标签: javascript arrays json reactjs nested