第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 React-Js 中添加依賴下拉列表

如何在 React-Js 中添加依賴下拉列表

哈士奇WWW 2023-05-19 15:07:53
我是 reactjs 的新手,我正在嘗試學(xué)習(xí) React-js。我想建立依賴下拉菜單。如果我選擇類型小說(shuō),它應(yīng)該顯示小說(shuō)類型的書(shū)籍?,F(xiàn)在所有這些都是硬編碼的,我還沒(méi)有將它鏈接到數(shù)據(jù)庫(kù)/后端。我搜索了一些東西并想出了這個(gè),但它不能正常工作。class Dropdown extends Component {  constructor(props) {    super(props);    this.state = {      Genres: [],      Books: [],      selectedGenre: "--Choose Genre--",      selectedBook: "--Choose Book--",    };    this.ChangeGenre = this.ChangeGenre.bind(this);    this.ChangeBook = this.ChangeBook.bind(this);  }  componentDidMount() {    this.setState({      Genres: [        { name: "Fiction", Books: ["GOT", "LOTR", "Harry Potter"] },        { name: "Murder", Books: ["Dragon", "Tattoo", "Girl"] },        { name: "Thriller", Books: ["Angel", "Lost Symbol", "Davinci"] },      ],    });  }  ChangeGenre(event) {    this.setState({      selectedGenre: event.target.value,    });    this.setState({      Books: this.state.Genres.find((b) => b.name === event.target.value).Books,    });  }  ChangeBook(e) {    this.setState({ selectedBook: e.target.value });    const stats = this.state.Genres.find(      (g) => g.name === this.state.selectedGenre    ).Books;    this.setState({      Books: stats.find((stat) => stat === e.target.value).Books,    });  }  render() {    return (      <div id="container">        <h2>Cascading or Dependent Dropdown using React</h2>        <div>          <label>Genre</label>          <select            placeholder="Genre"            value={this.state.selectedGenre}            onChange={this.ChangeGenre}          >            <option>--Choose Genre--</option>            {this.state.Genres.map((e, key) => {              return <option key={key}>{e.name}</option>;            })}          </select>        </div>Books 下拉列表不顯示任何書(shū)籍,并且單擊任何選項(xiàng)都會(huì)引發(fā)錯(cuò)誤 cannot read 'Books' of Undefined。
查看完整描述

2 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

import React, { Component } from "react";


class Dropdown extends Component {

  constructor(props) {

    super(props);

    this.state = {

      Genres: [],

      Books: [],

      selectedGenre: '--Choose Genre--',

      selectedBook: '--Choose Book--'

    };


    this.ChangeGenre = this.ChangeGenre.bind(this);

    this.ChangeBook = this.ChangeBook.bind(this);

  }


  componentDidMount() {

    this.setState({

      Genres: [

        { name: "Fiction", Books: ["GOT", "LOTR", "Harry Potter"] },

        { name: "Murder", Books: ["Dragon", "Tattoo", "Girl"] },

        { name: "Thriller", Books: ["Angel", "Lost Symbol", "Davinci"] }

      ]

    });

  }


  ChangeGenre(e) {

    e.preventDefault();

    const Books = this.state.Genres.find(

      (genre) => genre.name === e.target.value

    ).Books;

    this.setState({ selectedGenre: e.target.value, Books });

  }


  ChangeBook(e) {

    e.preventDefault();

    this.setState({ selectedBook: e.target.value });

  }


  render() {

    return (

      <div id="container">

        <h2>Cascading or Dependent Dropdown using React</h2>


        <div>

          <label>Genre</label>

          <select

            placeholder="Genre"

            value={this.state.selectedGenre}

            onChange={this.ChangeGenre}

          >

            <option>--Choose Genre--</option>

            {this.state.Genres.map((genre, key) => {

              return <option key={key}>{genre.name}</option>;

            })}

          </select>

        </div>


        <div>

          <label>Books</label>

          <select

            placeholder="Books"

            value={this.state.selectedBook}

            onChange={this.ChangeBook}

            disabled={this.state.selectedGenre === '--Choose Genre--'}

          >

            <option>--Choose Book--</option>

            {this.state.Books.map((book, key) => {

              return <option key={key}>{book}</option>;

            })}

          </select>

        </div>

      </div>

    );

  }

}


export default Dropdown;


查看完整回答
反對(duì) 回復(fù) 2023-05-19
?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果還不晚,你也可以試試React Conditional Selection 的方法。



查看完整回答
反對(duì) 回復(fù) 2023-05-19
  • 2 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)