栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

组件通信--下拉菜单案例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

组件通信--下拉菜单案例

如下所示,我们拆分两个组件,我们点击list组件中的数据,填充到输入框中,默认list数据隐藏

 app.js文件

拆分两个组件,并分别引入两个组件

import React, { Component } from 'react';
import './App.css';
import Inp from './component/Inp';
import List from './component/List.js';



export default class App extends Component {
  constructor(){
    super()
    this.state={
      list: ['12k-15k', '15k-18k', '18k-22k', '22k-15k', '25k以上'],
      val: "",
      flag: false
    }
  }

  changeFlag = () => {
    this.setState({
        flag: !this.state.flag,
    })
}
setVal = (value) => {
  this.setState({
      val: value,
  })
  
  this.changeFlag();
}
  render() {
    let { list, val, flag } = this.state;
    return (
      
       
       
       
      
    )
  }
}

inp组件

inp框拆分到到子组件后,需要传递val值,【父传子】

传递点击文本框切换列表显示的函数【子传父】

import React from 'react'

export default function Inp(props) {
  return (
    
        
    
  )
}

list组件

flag的值传递,控制显示隐藏 【父传子】

list数据渲染列表数据 【父传子】

点击切换列表显示事件的传递 【子传父】

import React from 'react'

export default function List(props) {
    let {list,flag}=props
  return (
    
        {
                flag ?
                    (
                        
    { list.map((item, index) => { return (
  • props.setVal(item)} key={index}>{item}
  • ) }) }
) : <> } ) }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1032813.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号