栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript在ReactJS中正确修改状态数组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript在ReactJS中正确修改状态数组

该阵营的文档说:

将此this.state视为不可变的。

push
将直接更改状态,即使您此后再次“重置”状态,也有可能导致易于出错的代码。F.ex,这可能会导致某些生命周期方法(如
componentDidUpdate
不会触发)。

在更高版本的React中,建议的方法是在修改状态以防止竞争情况时使用 updater 函数:

this.setState(prevState => ({  arrayvar: [...prevState.arrayvar, newelement]}))

与使用非标准状态修改可能会遇到的错误相比,内存“浪费”不是问题。

早期React版本的替代语法

您可以使用

concat
干净的语法,因为它会返回一个新数组:

this.setState({   arrayvar: this.state.arrayvar.concat([newelement])})

在ES6中,您可以使用Spread运算符:

this.setState({  arrayvar: [...this.state.arrayvar, newelement]})


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/456683.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号