如何仅更改状态的一部分?

Kenodek

有没有办法只更改this.state.first的一部分?假设第三个索引为true,但其余部分保持不变。我不想重写它。我曾考虑过使用Spread Sytax,但我不知道如何?

import React from "react";

class MyClass extends React.Component {
  constructor() {
    super();
    this.state = {
      first: [false, false, false, false, false, false, false]
    };
  }
}
克里斯

您可以执行以下操作:

this.setState(prevState => {
  const newFirst = [...prevState.first];
  newFirst[2] = true;
  return {first: newFirst};
});

这将产生:

[false, false, true, false, false, false, false]

如您所知,您可以通过更改状态setState()要仅更改数组中的一个值,我们需要创建一个我们可以使用的数组的临时副本(即要const newFirst = [...prevState.first]执行的操作),更改所需索引(newFirst[2] = true的值,然后将状态设置为该新数组。

这里要注意的重要一点是,我们在传递给的回调函数中完成了所有这些操作setState()这向我们保证,我们始终在使用先前状态,而不是当前状态。在您设置依赖于先前状态的新状态时,这是一个好习惯。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从子组件仅更改状态的一部分反应钩子

仅提取框架更改的一部分

如何在休眠状态下仅审计超类的一部分?

我如何清除状态的一部分

如何仅解析JSON的一部分?

如何仅编码URL的一部分

如何仅显示图像的一部分

如何仅分析图像的一部分?

如何仅渲染Sprite的一部分

如何仅加粗段落的一部分?

如何在状态更改时重新渲染组件的一部分?

如何使用Python Decorator仅更改函数的一部分?

如何使用CSS文件仅更改HTML文件的一部分?

如何仅更改“inner.html”的一部分?

如何仅选择Tensorflow数据集的一部分并更改尺寸

更改仅知道字符串一部分的数组中值的一部分

组件中仅呈现了一部分更新状态(React / Redux)

每次全局更改时如何访问上下文状态的一部分而不渲染?

如何仅更改具有变量值的字符串的一部分

JavaScript:如何将颜色更改为仅输入字段中字符串的一部分?

如何仅将寄存器的一部分更改为数字(示例做错了吗?)

如何仅提取数组键(字符串)的一部分并更改其大小写

光标仅更改为图像的一部分的指针

更改geom默认外观仅作为主题组件的一部分

使用Laravel单击<a>元素仅更改页面的一部分?

OpenCL NDRange用法-内核仅更改输出缓冲区的一部分

仅更改自定义UITableViewCell所选背景颜色的一部分

JavaFX / SceneBuilder-仅更改场景的一部分

使用sed仅更改子字符串的一部分