javascript - Reactjs app div onclick在IE 11中不起作用没有调用函数
问题描述
我正在以 reactJS 作为主要框架并使用最新的反应钩子进行项目。我有一个 const 函数需要在左侧的 div 项(子组件)上执行,它由简单的头部和一些填充类型的框组成。
这是我的代码函数将在父组件中调用
import React from 'react'
import PropTypes from 'prop-types'
import classnames from 'classnames'
import withStyles from 'react-jss'
import * as R from 'ramda'
import { connect } from 'react-redux'
import CardItem from './card-item'
const ParentComponent = ({
classes
}) => {
const arrayData = [{name: "Jose", id: "1"}, {name: "Job", id: "2"}];
const onSelect = (data) => () => {
console.log(data)
}
return (<div>
{Array.map(item =>
<CardItem
item={item}
onclickFun={onSelect(item)}
/>,(arrayData))}
</div>
)
}
ParentComponent.propTypes = {
classes: PropTypes.object
}
const styles = theme => ({
card: {
boxSizing: 'border-box',
minHeight: '150px',
width: '100%',
borderStyle: 'solid',
borderWidth: '1px',
}
})
export default (withStyles(styles)(ParentComponent))
卡片组件代码:
import React from 'react'
import PropTypes from 'prop-types'
import classnames from 'classnames'
import withStyles from 'react-jss'
import * as R from 'ramda'
import { connect } from 'react-redux'
const CardItem = ({
classes,
item,
onclickFun
}) => {
return (
<div className=[classes.card} onClick={onclickFun}>
<div className={classes.topContainer}>
{item.name}
</div>
</div>
)
}
CardItem.propTypes = {
classes: PropTypes.object,
item: PropTypes.object,
onClick: PropTypes.func
}
const styles = theme => ({
card: {
boxSizing: 'border-box',
minHeight: '150px',
width: '100%',
borderStyle: 'solid',
borderWidth: '1px',
}
})
export default (withStyles(styles)(CardItem))
请帮忙
解决方案
=> ()
你的 onSelect 函数中有一个额外的
代替
const onSelect = (data) => () => {
console.log(data)
}
和
const onSelect = (data) => {
console.log(data)
}
此外,当您将作为道具添加到 cardItem 时,您正在调用该函数,而不是像这样传递实际函数
onclickFun={() => {onSelect(item)}}
代替
<CardItem
item={item}
onclickFun={onSelect(item)}
/>
和
<CardItem
item={item}
onclickFun={() => {onSelect(item)}}
/>
Array.map 应该像这样直接在数组上调用另一件事
{arrayData.map(item =>
<CardItem
item={item}
onclickFun={onSelect(item)}
/>)}
我创建了一个工作沙箱(我删除了所有样式以简化它) 代码沙箱
推荐阅读
- batch-file - 用for循环分隔名字和姓氏
- javascript - 仅使用 css 和 vanilla js 在没有插件的情况下向下滚动时从顶部显示一个按钮
- android - JSON数据未返回
- java - 如何使用 Spring Security 创建身份验证系统?
- android - MainActivity.this 和 this 有什么区别
- python - django 应用程序中地图上的散点图引发底图错误
- angular - 路由更改时角度重置 TransferState 数据
- java - 在编译时查找 INT 到 LONG 的转换
- java - Sonarqube 安全报告:OWASP 前 10 名
- odoo - 设置中的日志菜单有什么用