React Native this2.'function' 不是一个函数

2023-12-01

我的 React Native 组件有问题。

sayHi = (s) => {
    console.log('hey' + s)
}

renderListItem(item, i) {

    return (
        <TouchableOpacity
            key={i}
            style={styles.listItem}
            onPress={() => { this.sayHi('bob') }}>

        <Text>{item}</Text>
        </TouchableOpacity>
    )
}

render() {
    this.sayHi('patrick')

    const { list } = this.props

    return (
        <View>
        {list.map(this.renderListItem)}
        </View>
    )
}

In renderListItem我收到一个错误_this2.sayHi 不是一个函数.

网上查了一下,大多数帖子都不符合我的情况;我看了一下这个帖子但我已经有一个箭头函数,所以这不是上下文问题。

功能控制台记录得很好render()。 我尝试绑定this在构造函数中,但我仍然收到错误。


Array#map在不同的上下文中执行回调,所以this未正确绑定。根据文档:

Syntax

var new_array = arr.map(callback[, thisArg])

参数

[...]

thisArg

选修的。用作的值this执行回调时。

[...]

If a thisArg参数被提供给map,它将被用作回调的this价值。否则,该值undefined将被用作其this value.

你可以通过this上下文作为第二个参数Array#map:

{list.map(this.renderListItem, this)}

Or, use Function#bind直接地:

{list.map(this.renderListItem.bind(this))}

最后,您可以使用箭头函数:

{list.map((item, i) => this.renderListItem(item, i))}

虽然我个人会选择第一个选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native this2.'function' 不是一个函数 的相关文章

随机推荐

  • 如何对主键重新排序?

    我有一个包含 5700 条记录的表 主键是一个整数 现在我注意到缺少一些值 像这样 100 data 101 data 102 data 104 data 103不见了 我如何更新所有行以使顺序正确 104变成103在我的示例中 在一个 S
  • 无法加载文件或程序集“AjaxControlToolkit”或其依赖项之一。该系统找不到指定的文件

    我已经使用我的 Visual Studio 安装了 AJAXcontrolsToolkit 并将 Combobox Ajaxcontrol 控件放置在我的网页中 当我编译代码时出现以下错误 无法加载文件或程序集 AjaxControlToo
  • 如何将云存储上的文件中的 json 导入到 Bigquery

    我正在尝试通过 api 将文件 json txt 从云存储导入到 Bigquery 但抛出错误 当通过网络用户界面完成此操作时 它可以正常工作并且没有错误 我什至设置了 maxBadRecords 0 有人可以告诉我我在这里做错了什么吗 代
  • 预加载的声音被卸载?

    所以 我有以下测试代码
  • 在 JavaScript 中使用“<”和“>”运算符比较两个字符串

    比较运算符如 gt and lt return Boolean当它们的输入作为两个字符串值给出时的值 我尝试了几个例子 String vs String console log firstName lt lastname true cons
  • PHP 中的 DOM:解码实体并设置 nodeValue

    我想使用 PHP 对 XML 文档执行某些操作DOM其标准库的一部分 正如其他人已经发现 然后就必须处理解码的实体 为了说明困扰我的问题 我举一个简单的例子 假设我们有以下代码 doc new DOMDocument doc gt load
  • Android 将文件保存到外部存储

    我在 Android 应用程序上创建目录并将文件保存到其中时遇到了一些问题 我正在使用这段代码来执行此操作 String filename MyApp MediaTag MediaTag objectId png File file new
  • 如何修复-没有这样的表:main.auth_user__old

    有人可以详细解释如何修复ERROR no such table main auth user old 当我尝试将数据添加到我的注册模型时 它会出现在我的 Django 应用程序中 我已经使用以下方法解决了这个问题 1 删除db sqlite
  • 标准化向量?

    如何标准化一个 M N 向量 使其所有元素的总和等于 1 我在网上浏览了一下 似乎没有什么完全符合我的需要 谢谢 将所有元素相加 然后将每个元素除以总和 显然 除法 至少 需要采用浮点数 由于这表示浮点矩阵 因此在保持最大精度的同时进行求和
  • 当类定义不可见时捕获异常

    我正在解决一个问题 即损坏的输入文件导致抛出异常 异常类是在实现文件中定义的 因此对我来说是不可见的 它确实继承自std exception 我尝试简单地向前声明异常类 因为我只是通过引用捕获它 然而 这给了我一个error invalid
  • 如何使用 Apache-POI 增加合并单元格值大于单元格宽度的 Excel 行的高度?

    我正在使用 java 类创建一个大的 excel Excel 包含一个存储字符串的合并单元格 字符串的长度非常大 我动态获取该字符串 我需要增加合并单元格的高度 以便完整的字符串适合该单元格 我尝试过使用 换行文本 它会换行文本 但不会增加
  • 使用 CSS 将圆分段

    我知道你可以使用 border radius hack 在 CSS 中画一个圆圈 但是有什么办法可以让他们有像这张图这样的片段吗 有没有办法通过 HTML 和 CSS 而不是 JS 来做到这一点 是的 您可以使用以下两种方法之一获得此类自定
  • ggplot 和 geom_sf 未在世界地图上显示标线和刻度线

    我正在尝试使用naturalearth 数据和ggplot2 获取世界地图 但是 经纬网和轴刻度线和标签未显示在世界地图的 x 轴上 AFAIK这个问题曾经被解决过coord sf expand FALSE 我有使用这个的旧代码 但它似乎不
  • R:在 lapply 内的函数中传递相应数据帧的索引(来自数据帧列表)

    我有 9 个数据框的列表list dataframes从文件和函数中读取func modification来修改它们 我想传递的值pos列表中相应数据框的索引 以便各个行可以拥有各自的dmv and method名称 怎么做 dmv lt
  • 使用 lambda 在 amazon lex aws 上自定义有效负载

    我有一个简单的机器人用于订购披萨 在履行功能中 我想显示视频而不是消息 这是我到目前为止所拥有的 use strict Close dialog with the customer reporting fulfillmentState of
  • wamp服务器:如何部署jsp应用程序

    我刚开始使用 WAMP 服务器 我无法在其上部署我的 java 应用程序 仅运行 Html 页面 请帮助了解目录结构以及保存 jsp java class war xml 文件的位置 当我单击 jsp 链接时 JSP 代码显示在 html
  • C# 如何将 float 转换为 int

    我需要将 float 转换为 int 单精度 32 位 例如 浮点 2 十六进制 40000000 到整数 1073741824 知道如何实施吗 我在msdn帮助中寻找它 但没有结果 float f int i BitConverter T
  • 将 JTable 保存为文本文件

    我正在保存包含 JTable 中的数据的 txt 和 doc 文件 在保存时 它会像在表格中一样布置文本 但由于数据长度不同 它不适合 所以我试图将日期安排如下 第1列名称 第1行第1列数据 第2列名称 第1行第2列数据 第3列名称 第1行
  • 使用 printf 在控制台中使用 C++ unicode 字符?

    My code include
  • React Native this2.'function' 不是一个函数

    我的 React Native 组件有问题 sayHi s gt console log hey s renderListItem item i return