【问题标题】:How to show a component When I click a button using function components in react如何在反应中使用功能组件单击按钮时显示组件
【发布时间】:2020-03-23 13:51:40
【问题描述】:

我正在开发一个 React 项目,其中我有一个父组件,即 Studentlist.js 在该组件中,我有两个按钮,一个是营销按钮,另一个是计算机按钮。

我有一个 Card 组件,它是 Studentslist.js 的 Child。

现在我首先要隐藏 Card 组件,我只想在单击 Computers 按钮时显示 Card 组件。

我知道如何通过使用基于类的组件来做到这一点,但我正在尝试通过使用函数组件来做到这一点。

这是 Studentlist.js

import React, { useState } from 'react';
import './Studentslist.css';
import Card from '../../Components/Card/Card';

function Studentslist() {

    const [hide, show] = useState({})
    return(
        <div className='container'>
            <div className='row'>
                <div className='col-12'>
                    <div className='Departments'>
                        <button className='btn btn-primary'>Marketing</button>
                        <button className='btn btn-primary ml-2'>Computers</button>
                    </div>
                    <Card></Card>
                </div>
            </div>
        </div>
    )
}

export default Studentslist

这是 Card.js

import React from 'react';
import './Card.css';

function Card() {
    return (
        <div className='container'>
            <div className='row justify-content-center'>
                <div className='col-6'>
                    <div className='Registration'>
                        <form>
                            <div className="form-group">
                                <label htmlFor="firstname">Firstname</label>
                                <input type="text" className="form-control" id="firstname"></input>
                            </div>
                            <div className="form-group">
                                <label htmlFor="lastname">Lastname</label>
                                <input type="text" className="form-control" id="lastname"></input>
                            </div>
                            <div className="form-group">
                                <label htmlFor="email">Email</label>
                                <input type="email" className="form-control" id="email"></input>
                            </div>
                            <div className="form-group">
                                <label htmlFor="password">Password</label>
                                <input type="password" className="form-control" id="password"></input>
                            </div>
                            <div className="form-group">
                                <label htmlFor="qualification">Qualification</label>
                                <input type="text" className="form-control" id="qualification"></input>
                            </div>
                            <div className="form-group">
                                <label htmlFor="branch">Branch</label>
                                <input type="text" className="form-control" id="branch"></input>
                            </div>
                            <button type="submit" className="btn btn-primary">Submit</button>
                            <button className='cancel btn btn-danger ml-2'>Cancel</button>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    )
}

export default Card

如果您觉得我的疑问不清楚,请发表评论。

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    现在应该可以了。

    import React, { useState } from 'react';
    import './Studentslist.css';
    import Card from '../../Components/Card/Card';
    
    function Studentslist() {
    
        const [show, setShow] = useState(false);
        return(
            <div className='container'>
                <div className='row'>
                    <div className='col-12'>
                        <div className='Departments'>
                            <button className='btn btn-primary'>Marketing</button>
                            <button onClick={ () => setShow(!show)} className='btn btn-primary ml-2'>Computers</button>
                        </div>
                        {show && <Card></Card>}
                    </div>
                </div>
            </div>
        )
    }
    
    export default Studentslist
    

    【讨论】:

      【解决方案2】:
      function Studentslist() {
      
          const [showCard, setShowCard] = useState(false);
          return(
              <div className='container'>
                  <div className='row'>
                      <div className='col-12'>
                          <div className='Departments'>
                              <button onClick = {() => setShowCard(true)} className='btn btn-primary'>Marketing</button>
                              <button className='btn btn-primary ml-2'>Computers</button>
                          </div>
                          {showCard && <Card></Card>}
                      </div>
                  </div>
              </div>
          )
      }
      
      export default Studentslist
      

      【讨论】:

        【解决方案3】:

        这是您可以在按钮上设置切换的方法。

        const [toggle, setToggle] = useState(false)
        
        <button className='btn btn-primary ml-2' onClick={() => setToggle(!toggle)>Computers</button>
        
        {toggle && <Card></Card>}
        

        【讨论】:

          猜你喜欢
          • 2020-09-26
          • 1970-01-01
          • 2020-11-11
          • 1970-01-01
          • 2021-06-27
          • 2020-07-27
          • 1970-01-01
          • 2021-11-08
          • 2022-10-20
          相关资源
          最近更新 更多