单击卡片时如何调用函数 - MERN Stack

Posted

技术标签:

【中文标题】单击卡片时如何调用函数 - MERN Stack【英文标题】:How to call a function when a Card is Clicked - MERN Stack 【发布时间】:2021-10-05 03:05:40 【问题描述】:

我想在用户点击卡片时调用一个函数(我使用了 react-bootstrap 中的卡片)。 我尝试了一个 onclick 功能,但它不起作用。

clientCard.js

import React from "react";
import Card from 'react-bootstrap/Card'
import DeleteOutlineIcon from '@material-ui/icons/DeleteOutline';
import EditOutlinedIcon from '@material-ui/icons/EditOutlined';

const clientCard = (client) => (

    <Card className="text-center card-mine" >
        <Card.Header>client.clientFirstName client.clientLastName</Card.Header>
        <Card.Body >
            <Card.Text >
            client.clientContactNumber
            <br></br>
            client.clientEmail
            </Card.Text>
        </Card.Body>
        <Card.Footer >
            <button className="btn btn-info ClientEditBtn">
                <DeleteOutlineIcon></DeleteOutlineIcon>
            </button>
            <button className="btn btn-info ClientDeleteBtn">
                <EditOutlinedIcon></EditOutlinedIcon>
            </button>
        </Card.Footer>
    </Card>

);

export default clientCard;

我已将客户卡导入我的主文件并显示它。这就是我调用函数的方式。

<ClientCard onClick=() => function1()/>

你能帮我了解当用户点击卡片时如何调用函数吗?

【问题讨论】:

你是从另一个 .js 文件调用这个函数 1 吗? function1 在我调用函数的同一个文件中可用(即 main.js) 不确定这是否是您要查找的内容,但您看过这个吗? so thread 【参考方案1】:

您可以将onClick 函数作为道具从调用(父)组件传递给子(ClientCard)。

const ClientCard = (props) => 
    return (
        <Card className="text-center card-mine" onClick=props.onClick>
            <Card.Header>
                Header
            </Card.Header>
            <Card.Body>
                Body
            </Card.Body>
        </Card>
    )
;

const Example = (props) => 
  return (
    <div>
        <ClientCard onClick=()=>alert('clicked!') />
    </div>
  );


ReactDOM.render(
  <Example />,
  document.getElementById('root')
)

react-bootstrap on Codeply

【讨论】:

感谢您的帮助【参考方案2】:

将函数传递给props并调用它

 <ClientCard passfunction=myfunction1/>

然后像这样使用它

    const clientCard = ( client, passfunction ) => (
        <div onClick=() =>  passfunction() >
            <Card className="text-center card-mine" >
                <Card.Header>Header</Card.Header>
                <Card.Body >Body</Card.Body>
                <Card.Footer >Footer</Card.Footer>
            </Card>
        </div>
    );
    
    export default clientCard;

【讨论】:

是的,非常感谢,我完全按照您说的做了,但必须将 function1 作为箭头函数传递给 props。 现在再检查一下? 是的,现在可以使用了,非常感谢您的帮助

以上是关于单击卡片时如何调用函数 - MERN Stack的主要内容,如果未能解决你的问题,请参考以下文章

当我使用 laravel 6.0 单击添加到卡片按钮时,我想将产品项目显示到购物车中?

[我想使用laravel 6.0单击添加到卡片按钮时将商品显示到购物车中?

如何使用 Multer 在 MERN Stack 应用程序中上传图像文件

MERN Stack - Express 和 React 在同一个端口上?

MERN Stack 为所有用户显示相同的数据

如何将图像上传到 Cloudinary - MERN 堆栈