javascript - 为什么当我更改状态时整页更新?

标签 javascript reactjs

嗨,我有一个 React 应用程序,这是我的代码:

this.state = {
  bars: [{
    tom1: Array(16).fill('0'),
  }],
}
tom1Click= (i, j) => {
  let bar = this.state.bars.slice();
  if(bar[i].tom1[j] === '1'){
    bar[i].tom1[j] = '0';
  }
  else
    bar[i].tom1[j] = '1';
  this.setState({bars: bar})
}

我的页面中有 16 个 Tom 组件,我希望当其中一个组件单击时状态值更改为 0 或 1,但是当我单击其中一个 Tom 时,整个状态都会更新并且整个页面会重新呈现 我应该怎么做才能处理这个问题,当我点击组件时,只是那个组件重新渲染

最佳答案

完成这项工作的更好方法是有 2 个组件,一个父组件将呈现 16 个子组件,子组件将具有 bool 状态和一个点击处理程序,该处理程序将具有简单的代码行 setState( {bar:!this.state.bar}); 例如。希望对您有所帮助!

关于javascript - 为什么当我更改状态时整页更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51559966/

相关文章:

javascript - React/Redux 无法保留搜索输入的先前状态

javascript - 提交 HTML 表单后显示另一个页面的分区内的内容

javascript - 使用 Ramda 镜头更改对象中的值属性

javascript - 配置路由

javascript - 无需过多嵌套即可调用多个 API

php - 检测当前页面的代码

CSS 不适用于使用 create-react-library 创建的链接 React 库

javascript - 使用 Node 和 React 进行基本文件上传

javascript - React - 模块构建失败

javascript - 在内置 SPA 中禁用缓存