当前位置: 首页 > 知识库问答 >
问题:

内部的子组件。映射函数显示所有子实例[重复]

耿锦
2023-03-14

我正在建立一个网站,允许用户创建一个职位空缺,分配给它不同的要求,并删除它。

我有两个主要部分:

>

  • hr仪表板是列出所有职位空缺的父组件。

    MyOpeningCard是包含单个作业打开信息的卡片。它来自父组件中的. map函数:

    hr仪表板

    function HRdashboard({changeAuthLoginHR}) {
    const [HRuser, setHRuser] = React.useState([]);
    const [openings, setOpenings] = React.useState([]);
    
    useEffect( ()=> {
    
        let unmountedOpenings = false
        async function getAllOpenings(){
            let response = await  axios("http://www.localhost:3000/api/v1/openings");
            if(!unmountedOpenings)
                setOpenings(response.data)
        }
    
        let jwt = window.localStorage.getItem('jwt')
        let result = jwtDecode(jwt)
        setHRuser(result)
        changeAuthLoginHR()
        getAllOpenings()
        return () => {
            unmountedOpenings = true
        }
        }, [],
    )
    
    
    return(
        <div>
            <Container style={{marginTop: "50px"}}>
                <Row>
                        {openings.map(opening =>
                            <Col>
                                <MyOpeningCard key={opening.id} opening={opening} /> # Here is where the child is
                            </Col>
                        )}
                </Row>
            </Container>
        </div>
    )
    
    }
    

    明信片

    function MyOpeningCard({opening}) {
    
        return(
    
            <div>
                <Card style={{ width: '18rem', marginTop: "15px"}}>
                    <Card.Body>
                        <Card.Title>{opening.title}</Card.Title>
                        <Card.Subtitle className="mb-2 text-muted">Requirements: </Card.Subtitle>
                        <Card.Text>
                            {opening.requirements[0].requirements.map(requirement => <li>{requirement}</li>)}
                        </Card.Text>
                        <div>
                        <Card.Link href="#" onClick={console.log(opening.id)}>Click Here</Card.Link> # If I click here, it console.log all the IDs, not only this opening id.
                        </div>
                    </Card.Body>
                </Card>
            </div>
        )
    
    }
    

    我的问题:

    如果我在我的子组件中单击单击此处,它将触发控制台。日志(opening.id)。我希望在控制台中只看到打开。我单击的空缺职位的id。但是,我看到了所有开口的ID。为什么会这样?

  • 共有2个答案

    阳修永
    2023-03-14

    函数名后的括号用于执行函数。尽管您并非有意这样做,但这就是为什么需要使用额外的箭头函数对其进行包装,其发生方式如下:

    ()=

    而如果您通过控制台。日志以这种方式记录(无括号),它将仅在单击事件发生时记录整个事件。

    翟默
    2023-03-14

    因为您的on点击道具正在调用一个函数,该函数在呈现您的子组件的同时立即运行,甚至没有点击所有子组件。

    onClick={console.log(opening.id)}
    

    因此,当您使用时。map()方法,所有

    相反,您应该将回调传递给on点击道具,该道具仅在单击发生时执行。

    把它改成

    onClick={() => { console.log(opening.id) }}
    

     类似资料:
    • 引用脚本的内容: /* “显示组件占用大小”与“在组件页面增加按钮”例子 by Ansifa 编译需要: NSIS建议最新版,ButtonEvent插件,还有修改过的UI.EXE(见附件) */ !AddPluginDir . XPStyle on OutFile "显示组件占用大小.EXE" Name "显示组件占用大小" !include "WordFunc.nsh" !include 'M

    • 因此,我想向附加到组件的任何子级添加某些样式。假设父组件称为,子组件称为。在我正在尝试以下方法:- 上述方法对我不起作用。我想知道为什么。还有没有一种方法可以让我在孩子们之间绘制地图,并将他们包装在一个新的组件中?像这样的东西;

    • 我有react组件A,它呈现一个表。表中某一列的数据通过另一个组件B呈现,因此是的子级。每当用户单击页面上的任何位置时,我希望在上执行一些操作。此click事件侦听器是在中定义的。如何从类内循环所有?我的组件结构如下所示: 我遇到了,但当通过将子级作为道具传递时,这很有用;例如,当代码如下所示时:

    • OutFile "常用API函数集.EXE" Name "常用API函数集" Section ;获得安装程序所在目录 System::Call 'kernel32::GetCurrentDirectory(i 1024,t .R1)' MessageBox MB_OK '安装程序所在目录:$R1' ;获得当前安装程序进程PID System::Call 'kernel32::GetCurrent

    • 本文向大家介绍Python 遍历子文件和所有子文件夹的代码实例,包括了Python 遍历子文件和所有子文件夹的代码实例的使用技巧和注意事项,需要的朋友参考一下 最近看ECShop到网上找资料,发现好多说明ECShop的文件结构不全面,于是想自己弄个出来。但这是个无聊耗时的工作,自己就写了个Python脚本,可以递归遍历目录下的所有文件和所有子目录,并将结果记录到一个.xml文件中(因为想使用Not