javascript - 如何在 for 循环中调用 onPress 函数。在本机反应
问题描述
我是新来的反应本地人。我有 3 个功能
function1()
function2()
function3()
我想在单个按钮 onPress 上多次运行这 3 个功能。当用户点击第四次时,应该再次运行第一个功能,依此类推。
这是我尝试过的。但我一直保持低于 4 的红线和这样的错误 = Identifier expected.ts(1003)
for (let i = 0; i < 4; i++) {
<Icon onPress={this.function[i]}/>
}
请帮助最好的方法是什么
解决方案
您可能需要像这样为 Icon 分配一个 key prop:
<Icon key={i} onPress={this.function[i]} />
在 React 中,任何迭代的组件都必须有一个 key prop,尤其是在映射数组时。我想for循环应该是一样的。
更新:如果你循环 Icon 组件,它会渲染多次。但我猜你只想点击一个图标组件。然后你可以使用状态来迭代函数。
<Icon onPress={() => {
this.function[i]
if (i === 3) this.setState({ i: 1 })
else this.setState({ i: i + 1 })
}} />
不要忘记在 render() 函数之外添加这个状态语句:
state = { i: 1 }
推荐阅读
- html - 缺乏编码经验,需要帮助添加到 HTML 脚本
- java - 将十位数字的字符串转换为整数或生成 10 位长的随机整数以在 Java 中创建帐号
- r - 按 R 中的样本分组的逐行 Fisher 精确检验
- php - 在购物车中添加商品数量
- python - 如何使用 Python 中的键盘模块一次处理多个键?
- python - 健康方式禁用/删除子类中的方法
- reactjs - 无法加载资源:net::ERR_CONNECTION_REFUSED?Heroku,Axios
- java - 将 yaml 文件中的值检索到外部库中的字段
- arrays - 将命令行语句分配给 Perl 数组时的困惑
- discord - \n 换行符不保留代码块文本样式