如何在 React 组件的状态下拼接数组

拉朱

我正在制作一个时间表应用程序。index.js 呈现表格。表的行是从 children 数组中读取的。children 数组读取状态以保持自身更新。AddRow() 工作正常。DeleteRow() 有一些问题。我打算从事件中获取 parentNode id,查找状态的数组,拼接它并让孩子更新自己 - 这反过来更新渲染。所以当一行被删除时,它会从状态的数组中拼接出来,然后在子数组中更新,然后渲染。DeleteRow 运行除 array.splice 或 indexOf 部分之外的所有内容。我什至尝试了 for 循环,但它不起作用。我的方法正确吗?

index.js    
import React from "react";
import ReactDOM from "react-dom";
import HeaderAndFirstTableRow from "./headerandfirstrow";
import TableRow from "./tablerow";
import "./styles.css";

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = { noOfRows: [] };
    this.addRow = this.addRow.bind(this);
    this.deleteRow = this.deleteRow.bind(this);
    this.find = this.find.bind(this);
  }
  addRow() {
    let arr = this.state.noOfRows;
    let arrLength = arr.length;
    arr.push(arrLength + 1);
    this.setState({
      noOfRows: arr
    });
  }
  find(arr, id) {
    for (let i = 0; i < arr.length; i++) {
      if (arr[i] === id) {
        return i;
      }
    }
  }
  deleteRow(event) {
    let arr = this.state.noOfRows;
    let id = event.target.parentNode.id;
    let ix = arr.findIndex(id);
    arr.splice(ix, 1);
    this.setState({ noOfRows: arr });
  }
  render() {
    let children = [];
    for (let i = 0; i < this.state.noOfRows.length; i++) {
      children.push(
        <TableRow id={this.state.noOfRows.length} delete={this.deleteRow} />
      );
    }
    return (
      <HeaderAndFirstTableRow click={this.addRow}>
        {children}
      </HeaderAndFirstTableRow>
    );
  }
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

headerandfirstrow.js

import React from "react";

import "./styles.css";

export default function HeaderAndFirstTableRow(props) {
  function handler() {
    props.click();
  }
  return (
    <table>
      <tr>
        <th>Feature</th>
        <th>Phase</th>
        <th>Comments</th>
        <th>Monday</th>
        <th>Tuesday</th>
        <th>Wednesday</th>
        <th>Thursday</th>
        <th>Friday</th>
        <th>Saturday</th>
        <th>Sunday</th>
        <th onClick={handler}>+</th>
      </tr>

      {props.children}
    </table>
  );
}

tablerow.js
import React from "react";
import "./styles.css";
export default function TableRow(props) {
  function del(e) {
    props.delete(e);
  }
  return (
    <tr id={props.id}>
      <td />
      <td />
      <td />
      <td />
      <td />
      <td />
      <td />
      <td />
      <td />
      <td />
      <td onClick={del}>-</td>
    </tr>
  );
}
代码狂人

splice 改变原始数组,你不应该改变状态,

你可以改成这个

deleteRow(event) {
    let arr = this.state.noOfRows;
    let id = event.target.parentNode.id;
    let filteredArray = arr.filter(val=> val !== id)
    this.setState({ noOfRows: filteredArray });
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在休眠状态下查询@MapKeyJoinColumn

来自分类Dev

如何在未检查状态下反转CSS动画?

来自分类Dev

如何在休眠状态下更新JoinTable

来自分类Dev

如何在休眠状态下检索关系映射?

来自分类Dev

如何在休眠状态下修复JndiException?

来自分类Dev

如何在排水状态下“排水”节点

来自分类Dev

如何在React中轻松设置兄弟组件的状态?

来自分类Dev

如何在休眠状态下保存外键?

来自分类Dev

Javascript / ES2015在React(或Redux)状态下切换数组对象的值

来自分类Dev

如何在React的视频端设置组件的状态?

来自分类Dev

如何在UI路由器状态下使用角度1.5组件

来自分类Dev

React / Redux无法在状态下遍历数组

来自分类Dev

如何在React中的无状态函数组件中初始化类实例?

来自分类Dev

如何在Typescript中编写React无状态功能组件?

来自分类Dev

如何在React函数组件中使用数组状态?

来自分类Dev

如何在React组件状态下更新对象的单个属性?

来自分类Dev

React:如何在功能组件中强制状态更新?

来自分类Dev

React Native:组件状态下的重复项

来自分类Dev

如何在React Hook状态下正确更新数组

来自分类Dev

在React挂钩中,如何在要更改的状态下引用对象的通用属性?

来自分类Dev

如何在提交时管理React Button组件中的状态

来自分类Dev

如何在组件之间传递React Hook模式状态?

来自分类Dev

如何在设置状态下更新对象数组

来自分类Dev

如何在React的视频端设置组件的状态?

来自分类Dev

如何在状态下渲染组件以做出反应?

来自分类Dev

如何在不刷新和处理 API 请求的情况下更新状态数组 React 方式?

来自分类Dev

react组件状态下渲染数据的问题

来自分类Dev

为什么我的数组没有在 React 的状态下更新?

来自分类Dev

如何在 React 状态下从嵌套的 Array 对象设置 radioGroup 的 defaultValue?

Related 相关文章

  1. 1

    如何在休眠状态下查询@MapKeyJoinColumn

  2. 2

    如何在未检查状态下反转CSS动画?

  3. 3

    如何在休眠状态下更新JoinTable

  4. 4

    如何在休眠状态下检索关系映射?

  5. 5

    如何在休眠状态下修复JndiException?

  6. 6

    如何在排水状态下“排水”节点

  7. 7

    如何在React中轻松设置兄弟组件的状态?

  8. 8

    如何在休眠状态下保存外键?

  9. 9

    Javascript / ES2015在React(或Redux)状态下切换数组对象的值

  10. 10

    如何在React的视频端设置组件的状态?

  11. 11

    如何在UI路由器状态下使用角度1.5组件

  12. 12

    React / Redux无法在状态下遍历数组

  13. 13

    如何在React中的无状态函数组件中初始化类实例?

  14. 14

    如何在Typescript中编写React无状态功能组件?

  15. 15

    如何在React函数组件中使用数组状态?

  16. 16

    如何在React组件状态下更新对象的单个属性?

  17. 17

    React:如何在功能组件中强制状态更新?

  18. 18

    React Native:组件状态下的重复项

  19. 19

    如何在React Hook状态下正确更新数组

  20. 20

    在React挂钩中,如何在要更改的状态下引用对象的通用属性?

  21. 21

    如何在提交时管理React Button组件中的状态

  22. 22

    如何在组件之间传递React Hook模式状态?

  23. 23

    如何在设置状态下更新对象数组

  24. 24

    如何在React的视频端设置组件的状态?

  25. 25

    如何在状态下渲染组件以做出反应?

  26. 26

    如何在不刷新和处理 API 请求的情况下更新状态数组 React 方式?

  27. 27

    react组件状态下渲染数据的问题

  28. 28

    为什么我的数组没有在 React 的状态下更新?

  29. 29

    如何在 React 状态下从嵌套的 Array 对象设置 radioGroup 的 defaultValue?

热门标签

归档