社区首页 >问答首页 >循环通过react onclick中的数组

循环通过react onclick中的数组
EN

Stack Overflow用户
提问于 2017-07-24 20:23:19
回答 2查看 2.5K关注 0票数 1

我有一个对象数组。如何在单击时遍历此数组?

代码语言:javascript
代码运行次数:0
复制
test = ['a', 'b', 'c', 'd']
 {this.state.test.map(function(i){
     return <span> {i} </span>
  })}

我通常会在react中像这样循环,但这会一次打印出它们。如何在页面上显示'a‘,然后在下次单击它时,显示'b’,依此类推,直到数组的末尾?

我需要一个函数,它可以告诉我在数组中的位置,并在正确的时刻显示在页面上

EN

回答 2

Stack Overflow用户

发布于 2017-07-24 20:36:09

例如,您可以实现一个计数器变量,并使用Array#slice来显示test数组中指定数量的元素。

代码语言:javascript
代码运行次数:0
复制
import React from "react";

export default class Hello extends React.Component {
  state = {
    test: ["a", "b", "c", "d"],
    index: 0
  };

  handleClick = () => {
    let i = this.state.index < this.state.test.length ? this.state.index += 1 : 0;
    this.setState({ index: i });
  };

  render() {
    return (
      <div>
        {this.state.test.slice(0, this.state.index).map(v => {
          return (
            <span>{v}</span>
          );
        })}
        <button onClick={this.handleClick}>Click</button>
      </div>
    );
  }
}

编辑:我一直在使用它,实际上我得到了一个更好的解决方案,它允许你在每次渲染时避免重新循环Array#map,只需要很少的hidden属性的帮助。此外,我们还去掉了Array#slice函数。

app.js

代码语言:javascript
代码运行次数:0
复制
{this.state.test.map((v, i) => {
  return (
    <span hidden={i >= this.state.index}>{v}</span>
  );
})}

Span.js组件:

代码语言:javascript
代码运行次数:0
复制
<span hidden={this.props.hidden}>
  {this.props.v}
</span>
票数 1
EN

Stack Overflow用户

发布于 2020-04-19 10:29:35

首先在您的状态设置初始索引,然后将该索引用作span中的索引数组。接下来,创建一些函数来处理增量,简单地说就是这样

代码语言:javascript
代码运行次数:0
复制
const switchNinjaHandler = () => {
let looper = ++this.state.index % this.state.test.length;
setState({
  ...personsState, // WE SHOULD ALWAYS GIVE THE EXCACT INITIAL STATE VALUE, THIS IS WHERE SPREAD COMING HANDY
  this.index : looper,
});

要显示

代码语言:javascript
代码运行次数:0
复制
return ( <div> {this.state.test[this.index]} </div> )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45289416

复制
相关文章
react onclick传递参数
onClick={this.Mallclose.bind(this,e,index)}
windseek
2019/01/02
2.8K0
React报错之Expected `onClick` listener to be a function
当我们为元素的onClick属性传递一个值,但是该值却不是函数时,会产生"Expected onClick listener to be a function"报错。为了解决该报错,请确保只为元素的onClick属性传递函数。
chuckQu
2022/08/19
1.1K0
React报错之Expected `onClick` listener to be a function
javascript中onclick(this)用法和onclick(this.value)用法介绍
2.onclick(this)代码详解 一般标签中会使用href和onclick两种方式来进行进行页面跳转或执行动作,但是小编一般都会使用onclick来进行执行Ajax函数进行跳转,并同时使用οnclick=”xxxxxx(this)”来传递动态参数:例子如下
全栈程序员站长
2022/07/08
1.8K0
React基础语法04-循环数组渲染数据的方法
首先在this.state里面定义数组list: ['111', '222', '3333'], 写方法过滤,map循环遍历更改数组,返回一个li,把value放进去。
王小婷
2019/11/10
3.1K0
JSX onClick 和 HTML onclick 的区别
在 JSX 中可以通过 onClick 这样的方式给一个元素添加一个事件处理函数,当然,在 HTML 中也可以用 onclick (小写 c),但在 HTML 中直接书写 onclick 一直就是为人垢病的写法,网页应用开发界一直倡导的是用 jQuery 的方法添加事件处理函数,直接写 onclick 会带来代码混乱的问题。
Leophen
2021/07/08
1.8K0
vue和react中循环key的作用
没用过react开发项目,但想来跟vue在循环渲染中key的作用应该原理是一样的。循环在没有使用key的时候,vue会警告。但是这个key的作用是什么。
wade
2020/04/24
1.6K0
React技巧之设置onClick监听器
原文链接:https://bobbyhadz.com/blog/react-onclick-link[1]
chuckQu
2022/08/19
6920
React技巧之设置onClick监听器
循环数组
array ( 'product_id' => array ( 0 => '1', 1 => '16', ), 'product_price_id' => array ( 0 => '2', 1 => '', ), 'qty' => array ( 0 => '1', 1 => '1', ), )
botkenni
2022/01/10
1.3K0
js中onclick传json数据
js中onclick传json数据 现在要在onclick事件中传递对象参数,由于我们是通过字符串拼接传的,那我们传之前用JSON.stringify(value)先将JSON对象转为JSON字符串,传之后再用eval(value)将JSON字符串转为JSON对象。(当然了,方法很多,这只是其中一种)
别团等shy哥发育
2023/02/25
10.3K0
js中onclick传json数据
JS中onclick函数自动执行问题
第一种写法是每次加载时,先调用clickCon方法,然后将执行结果赋给onclick,每次都会执行
西柚dzh
2022/06/09
5.7K0
java中遍历数组_java循环取数组值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/02
2.8K0
react 函数组件中 props应用
在 React 函数组件中,可以通过 props 对象来接收传递给组件的属性(props)。以下是一些常见的 props:
程序员王天
2023/10/18
1940
React技巧之移除状态数组中的对象
原文链接:https://bobbyhadz.com/blog/react-remove-object-from-state-array[1]
chuckQu
2022/08/19
1.3K0
React技巧之移除状态数组中的对象
数组常用循环
对于JS我们常见的循环有下面这些: for 循环 for in 循环 for of 循环 forEach() map() filter() some() every() 下面要循环的数组 var arr = ['a', 'b', 'c']; 1、for 循环 for (var i = 0; i < arr.length; i++) { console.log(arr[i]) } 2、for in 循环 for (var i in arr) { cons
用户6973020
2020/02/24
1.4K0
数组循环左移
/* 功能:数组循环左移 日期:2013-05-20 */ #include <stdio.h> #include <stdlib.h> #include <math.h> #define LEN 6
WindCoder
2018/09/19
1.6K0
PHP-通过for循环将数组中值求和、求平均值
6、 打印100以内的斐波那契数(迭代法)1 1 2 3 5 8 13 21 …
cwl_java
2020/03/26
2.8K0
【python-leetcode442-循环排序】数组中重复的数据
给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。
西西嘛呦
2020/08/26
1.5K0
【python-leetcode442-循环排序】数组中重复的数据
JS 中循环遍历数组方式总结
JavaScript 中的 for 循环很古老,它在 ECMAScript 1 中就已经存在了。for 循环记录 arr 每个元素的索引和值:
疯狂的技术宅
2021/01/28
3.4K0
点击加载更多

相似问题

在React中通过数组索引onClick递增

30

通过onclick (for循环)访问Javascript数组中的子元素

119

通过2数组循环并对项使用onclick

20

循环通过JS数组onclick并将值写入DOM

11

在react中的For循环中的Onclick事件

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文