不使用箭头函数将参数传递给 prop 函数

2024-01-26

我听说将箭头函数作为 prop 传递并不理想,因为它每次都会创建一个新函数,这会导致性能问题。然而,我并不完全确定如何完全摆脱它们,如下例所示:

class Home extends Component {

    onCardPress = (message) =>{
        alert(message)
    }

    render(){
        return(
            <View>
                <Card 
                    onCardPress={this.onCardPress}
                    message="Hello world!"
                />
            </View>
        )
    }
}

class Card extends Component {
    render(){
        const { onCardPress , message } = this.props;
        return(
            <TouchableOpacity
                activeOpacity={0.8}
                onPress={()=>{onCardPress(message)}}
            />
        )
    }
}

我尝试过改变onPress in Card to be onPress={onCardPress(message)},但我知道这不起作用,因为我调用该函数而不是将函数对象传递给onPress of TouchableOpacity。删除箭头功能的“正确”方法或最佳实践是什么TouchableOpacity同时仍然能够通过message来自父组件的参数Home?


你可以这样做:

class Card extends Component {
    pressHandler = () => this.props.onCardPress(this.props.message);

    render() {
        return (
            <TouchableOpacity
                activeOpacity={0.8}
                onPress={this.pressHandler.bind(this)}
            />
        );
    } }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不使用箭头函数将参数传递给 prop 函数 的相关文章

随机推荐

  • Web 服务与 DLL;优点和缺点?

    我正在为我们的网站实施一项网络服务 该服务通过互联网请求并接收来自第三方的数据 我还被要求创建一个 DLL 为内部 Windows 应用程序复制 Web 服务的功能 我的问题是 不创建 DLL 并使用 WEB 服务用于内部和 Web 应用程
  • 在 post_save 信号中访问用户的请求

    我在我的项目中完成了以下 post save 信号 from django db models signals import post save from django contrib auth models import User COR
  • 如何使 UILabel 中的文本缩小字体大小

    如果 UILabel 包含太多文本 如何设置标签以缩小字体大小 这是我设置 UILabel 的方法 descriptionLabel UILabel alloc initWithFrame CGRectMake 200 30 130 150
  • 接口变量是否具有值类型或引用类型语义?

    接口变量是否具有值类型或引用类型语义 接口由类型实现 这些类型要么是值类型 要么是引用类型 显然 两者int and string实施IComparable and int是一个值类型 并且string是一个引用类型 但是这个呢 IComp
  • 如何使用 javascript 更新 parse.com 中的当前对象?

    我想用 javascript 更新 parse com 中已有的对象 我所做的是我首先通过查询退休了该对象 但我不知道如何更新它 这是我使用的代码 有什么问题吗 var GameScore Parse Object extend Drive
  • 通过 Jenkins REST API 获取 IP 地址?

    我的任务是对 Jenkins 的一些工作进行一些健康检查 这个想法是通过 Jenkins Rest API 获取作业的状态和关联的 IP 地址 这样我就可以使用该信息与另一个 Restful API 进行交互 我创建了一个 groovy 脚
  • 如何禁用所有打字稿类型检查?

    我想使用 TypeScript将来 但目前 我选择在 Create React App 中安装 TypeScript 稍后我会回去添加类型 因此 我想禁用所有类型检查 现在 当我做这样的事情时
  • 定时器 C#.开始、停止和获取调用之间的时间量[重复]

    这个问题在这里已经有答案了 可能的重复 如何测量函数运行了多长时间 https stackoverflow com questions 10107140 how to measure how long is a function runni
  • 使用枚举实现单例(Java 中)

    我读到可以实施Singleton在Java中使用Enum例如 public enum MySingleton INSTANCE 但是 上面的方法是如何工作的呢 具体来说 一个Object必须被实例化 这里 怎么样MySingleton被实例
  • ServerSocket - 真的有必要 close() 它吗?

    我有这个该死的结构 public void run try if portField getText equals String p portField getText CharSequence numbers 0123456789 btn
  • nexttick 和 onupdated 有什么区别?

    我正在关注某人的教程来学习如何nexttick有效 但我无法理解它和onUpdated 如下所示 引用部分几乎会出于相同的原因出现或被调用 为了进一步理解它 我创建了下面发布的代码 并如图所示nexttick之后被调用onUpdated 你
  • 使用 NodeJS 在 MySQL 中运行 SQL 文件

    我正在使用mysql https github com felixge node mysqlNodejs 的插件 它非常适合做我到目前为止需要的一切 然而我遇到了一个绊脚石 我创建了一个导出 mysql 池的 MySQL 提供程序 var
  • JVM 与大型内存对象相关的问题

    我有一个二进制文件 其中包含一个短字符串列表 该列表在启动时加载并作为从字符串到 protobuf 包含字符串 的映射存储在内存中 不理想 但由于遗留问题很难改变设计 最近 该列表已从约 2M 条目增长到约 20M 条目 导致构建地图时失败
  • 如何使资源重定向到rails中的另一个控制器

    我有两个模型 Book and Magazine 属性方面几乎没有差异 但我希望它们共享相同的控制器和视图 Book 模型的控制器和视图 我的问题是 考虑到 Book 已经设置如下 在 paths rb 中设置 Magazine 模型的路线
  • Xerces-C 中的 XPath 支持

    我支持使用 Xerces C 进行 XML 解析的旧版 C 应用程序 我已经被 Net 宠坏了 并且习惯使用 XPath 从 DOM 树中选择节点 有什么方法可以访问 Xerces C 中一些有限的 XPath 功能吗 我正在寻找类似 se
  • 快速调整图片大小工具/脚本

    我在服务器上的一个文件夹中按日期组织了很多图像 500 000 我制作了一个 PHP 脚本来复制和裁剪子文件夹 拇指 上的每个 JPG 文件 但由于 PHP 不支持多线程 因此速度非常慢 我需要有关如何进行的建议 Python 是一个不错的
  • Paypal 按钮 + IPN(传递付款人用户名)

    有没有办法也传递和接收自定义变量 例如付款人的用户名 我不能强迫我的用户使用与他们在我的网站上使用的相同的贝宝电子邮件地址 最初由贝宝返回 传递额外的用户名将有助于轻松检查付款人的身份 您可以在发布到 PayPal 的表单中包含自定义隐藏字
  • PostgreSQL:外键列中的 NULL 值

    在我的 PostgreSQL 数据库中 我有下表 简化 CREATE TABLE quotations receipt id bigint NOT NULL PRIMARY KEY CREATE TABLE order confirmati
  • 使用 JavaScript 更改鼠标指针

    我想使用 JavaScript 脚本来更改网站上的鼠标指针 最好用 CSS 来完成 但我的要求是一个可以分发给很多人以嵌入到他们网站的头部部分的脚本 通过 CSS 可以通过以下方式进行操作 html cursor cursorurl 如何在
  • 不使用箭头函数将参数传递给 prop 函数

    我听说将箭头函数作为 prop 传递并不理想 因为它每次都会创建一个新函数 这会导致性能问题 然而 我并不完全确定如何完全摆脱它们 如下例所示 class Home extends Component onCardPress message