javascript - 如何在 React.js 中将事件函数分配给 DOM 列表

标签 javascript reactjs event-handling

我想询问您有关在 React.js 中使用事件函数的问题。

我想制作测试函数,当单击titlesList时它将获取索引并打印索引。 但点击后该功能不起作用。

你能给我解决这个问题的建议吗?

const some = (props) = {
    // 'props' have two attributes, titles and contents
    // which each is a array of strings.



    function test(index){
        console.log('clicked');
        console.log(index);
     }

    const titlesList = props.titles.map((title, index) => {

        return <div className="eachTitle"
            key={index}
            onClick={test(index)}>
            {title} {index}
        </div>
    });

    return (
            <div>
                    {titlesList}
            </div>
    );
}

感谢您的阅读。

最佳答案

当你的组件被渲染时,它实际上会调用test(index)。这会将 onClick 的值设置为 test(index) 的返回值。您需要做的是将 onClick 设置为一个函数,该函数可以使用正确的参数调用您想要的任何内容。

onClick={() => {测试(索引)}}

这是一个匿名函数,可以传递。单击时,将调用匿名函数,该函数实际上只是使用您的参数调用 test(index) 。如果您不需要向 test 传递任何参数,您可以这样做:

onClick={测试}

由于您无法告诉 onClick 传递参数(除了事件对象之外),因此匿名函数是解决该问题的简单方法。

关于javascript - 如何在 React.js 中将事件函数分配给 DOM 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58376624/

相关文章:

javascript - 使用 javascript 提取并探索 .ZIP 文件夹中的文件修改时间戳

javascript - 向每个列表项 (LI) 添加括号中的后代计数。跳过那些里面没有其他列表项的 LI

javascript - 如何验证动态生成的包含 jquery 中的引导选项卡的表单

javascript - 在 jsx 中循环 react

c# - 为什么调用 null 事件处理程序不会引发异常?

javascript - 当使用 JavaScript 单击方 block 时,如何使方 block 的颜色发生变化?

javascript - 基本的 Node.js 快速身份验证不起作用

javascript - 仅对某些页面使用 Drupal.behaviors?

reactjs - 部署到 github 页面时图像不会加载

javascript - React Hooks 未正确更新数组