react如何向数组中追加值

 更新时间:2022年09月01日 14:06:51   作者:otatoz  
这篇文章主要介绍了react如何向数组中追加值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

react向数组中追加值

首先,渲染一个随机数,每个一秒变换一次,效果如下:

代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
  <title>数组追加元素</title>
  <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
  <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
  <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
 
<div id="xpf"></div>
<script type="text/babel">
class Xpf extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      random:Math.random()
    }
  }
  
  componentWillMount(){
    setInterval(() => {
      this.setState({
        random:Math.random()
      })
    }, 1000);
  }
 
  render() {
    let {random} = this.state;
      return (
        <div>
          <div>
            {random}
          </div> 
          
        </div>
      );
  }
} 
 
ReactDOM.render(
	<Xpf />,
	document.getElementById('xpf')
);
 
</script>
 
</body>
</html>

注意:组件更新有两种方式props或state的改变,而改变state一般是通过setState()方法来的,只有当state或props改变,render()方法才能再次调用,即组件更新

将生成的随机数放入一个数组,效果如下:

代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
  <title>数组追加元素</title>
  <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
  <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
  <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
 
<div id="xpf"></div>
<script type="text/babel">
class Xpf extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      random:Math.random(),
      arr:[1,2,3]
    }
  }
  
  componentWillMount(){
    setInterval(() => {
      this.setState({
        random:Math.random(),
        arr:[...this.state.arr,Math.random()]
      })
    }, 1000);
  }
 
  render() {
    let {random,arr} = this.state;
      return (
        <div>
          <div>
            {random}
          </div> 
          <ul>
            {
              arr.map((item,index)=>{
                return ( <li key={index}>{item}</li>)
              })
            }
          </ul>  
        </div>
      );
  }
} 
 
ReactDOM.render(
	<Xpf />,
	document.getElementById('xpf')
);
 
</script>
 
</body>
</html>

使用...this.state.arr将arr解构出来,在将随机数加进去

注意:不能使用 arr : this.state.arr.push(Math.random()),不能使用在原数组的基础上修改的方法,例如push之类,可以使用concat方法或者ES6数组拓展语法

react处理数组的值

1. 追加数组的值

通过…运算符把数组之前的值拆分,再在后面追加值

this.state = {
  arr: []
}
add(){
  this.setState((prevSatet) => ({
    arr: [...prevSatet.arr, [追加的值] ]
  }))
}

2. 删除下标为index的值

把state中arr的值拷贝到新的arr中,删除新arr下标为index的值后,再重新赋值回arr

主要不要直接删除state中arr的值,然后赋值回去,这样违反immutable的规则

this.state = {
  arr: []
}
delete(index){ 
  this.setState((prevState) => {
    const arr = [...prevState.list]
    arr.splice(index, 1)
    return { arr }
  })
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 阿里低代码框架lowcode-engine设置默认容器详解

    阿里低代码框架lowcode-engine设置默认容器详解

    这篇文章主要为大家介绍了阿里低代码框架lowcode-engine设置默认容器详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • React中如何使用scss

    React中如何使用scss

    这篇文章主要介绍了React中如何使用scss问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • TypeScript在React中的应用技术实例解析

    TypeScript在React中的应用技术实例解析

    这篇文章主要为大家介绍了TypeScript在React中的应用技术实例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • React Native性能优化红宝书方案详解

    React Native性能优化红宝书方案详解

    React Native 是Facebook在React.js Conf2015推出的开源框架,使用React和应用平台的原生功能来构建Android和iOS应用,这篇文章主要介绍了React Native性能优化红宝书,需要的朋友可以参考下
    2024-06-06
  • react中实现将一个视频流为m3u8格式的转换

    react中实现将一个视频流为m3u8格式的转换

    这篇文章主要介绍了react中实现将一个视频流为m3u8格式的转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • React hooks如何清除定时器并验证效果

    React hooks如何清除定时器并验证效果

    在React中,通过自定义Hook useTimeHook实现定时器的启动与清除,在App组件中使用Clock组件展示当前时间,利用useEffect钩子在组件挂载时启动定时器,同时确保组件卸载时清除定时器,避免内存泄露,这种方式简化了状态管理和副作用的处理
    2024-10-10
  • React路由动画切换实现过程详解

    React路由动画切换实现过程详解

    这篇文章主要介绍了react-router 路由切换动画的实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2022-12-12
  • react-router4按需加载(踩坑填坑)

    react-router4按需加载(踩坑填坑)

    这篇文章主要介绍了react-router4按需加载(踩坑填坑),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • 解决React在安装antd之后出现的Can''t resolve ''./locale''问题(推荐)

    解决React在安装antd之后出现的Can''t resolve ''./locale''问题(推荐)

    这篇文章主要介绍了解决React在安装antd之后出现的Can't resolve './locale'问题,本文给大家分享解决方案,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • React中的refs的使用教程

    React中的refs的使用教程

    本篇文章主要介绍了React中的refs的使用教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02

最新评论