当前位置: 首页 > 面试题库 >

推入状态数组的正确方法

吴涵育
2023-03-14
问题内容

我似乎在将数据推入状态数组时遇到问题。我正在尝试以这种方式实现它:

this.setState({ myArray: this.state.myArray.push('new value') })

但是我相信这是不正确的方式,并导致可变性问题?


问题答案:

this.state.myArray.push('new value')返回扩展数组的长度,而不是数组本身。Array.prototype.push()。

我猜您希望返回的值是数组。

不变性

似乎这是React的行为:

切勿直接更改this.state,因为此后调用setState()可能会替换您所做的更改。将此this.state视为不可变的。React.Component。

我猜,您会这样做(不熟悉React):

var joined = this.state.myArray.concat('new value');
this.setState({ myArray: joined })


 类似资料:
  • 我已经开始学习ReactJS,有一个关于无状态和有状态组件的问题。一般来说,我遵循组件和容器的分离,如下所示。有状态函数在组件文件夹中,其他逻辑操作在容器文件夹下。文件夹结构 让我们思考材料UI下拉列表。 为了打开和关闭下拉菜单和方法更改打开状态,这意味着它是有状态组件。但没有其他变化(省略年龄设置)。它似乎是可重用的组件,但包括状态与非常简单的操作,如打开和关闭。我应该放入哪个文件夹?容器还是组

  • 问题内容: 假设我有一个整数序列: 并希望根据给定的最后3个整数来预测下一个整数,例如: 等 假设我像这样设置模型: 第一个问题:我的理解正确吗? 请注意,我已经画出了C_{t-1}, h_{t-1}进入图片的先前状态,因为指定时会暴露出来stateful=True。在这个简单的“下一个 整数预测”问题中,应通过提供此额外信息来改善性能(只要先前的状态是由前三个整数产生的)。 这使我想到了一个主要

  • 问题内容: 我想在数组的末尾添加一个元素,这是正确的方法吗? 我担心如果就地修改阵列可能会造成麻烦-是否安全? 制作数组副本的另一种选择似乎是浪费的。 问题答案: 该阵营的文档说: 将此this.state视为不可变的。 您将直接更改状态,即使您此后再次“重置”状态,也有可能导致易于出错的代码。F.ex,它可能导致某些生命周期方法(如不会触发)。 在更高版本的React中,建议的方法是在修改状态以

  • 我想在数组的末尾添加一个元素,这是正确的方法吗? 我担心使用修改阵列可能会导致问题-安全吗? 另一种方法是复制数组,然后ing这似乎是浪费。

  • 问题内容: 我想在数组的末尾添加一个元素,这是正确的方法吗? 我担心如果就地修改阵列可能会造成麻烦-是否安全? 制作数组副本的另一种选择似乎是浪费的。 问题答案: 该阵营的文档说: 将此this.state视为不可变的。 您将直接更改状态,即使您此后再次“重置”状态,也有可能导致易于出错的代码。F.ex,这可能会导致某些生命周期方法(如不会触发)。 在更高版本的React中,建议的方法是在修改状态

  • 我有两个React组件,即和使用了一些重要的UI组件,但我相信它们与我的问题无关。 在,使用effect调用,该函数解析为一个类别数组,例如,。 我的目标是访问父组件()中复选框的状态(选中或未选中)。我采取了这个问题中建议的方法。(见验证答案) 有趣的是,当我记录