javascript - React - 如何将对象推送到嵌套在数组中的数组

标签 javascript reactjs

我目前正在学习 React,所以如果我使用的术语不正确,我深表歉意。

我正在创建一个包含多列的项目,每列都有一个“添加”按钮。这个按钮弹出一个模式,用户可以在其中输入一串文本。然后我希望返回此文本字符串并将其显示在特定列中。我在尝试确定如何更新 setState 时遇到了麻烦,具体取决于我希望引用的列的索引。

我从模态返回列 ID,然后将该列 ID 与状态中设置的列的 ID 进行比较。我想知道如何获取我获取的列[索引],并使用它在 addCard 方法中使用卡片对象更新卡片数组。

class Board extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      modalOpen: false,
      columns: [
        {
          title: '',
          id: uuid(),
          cards: []
        },
        {
          title: '',
          id: uuid(),
          cards: []
        },
        {
          title: '',
          id: uuid(),
          cards: []
        }
      ],
      currentColumnID: null
    };
  }
  openModal = (colID) => {
    this.setState(state => {
      return {
        modalOpen: true,
        currentColumnID: colID
      };
    });
  };
  closeModal = () => {
    this.setState(state => {
      return {
        modalOpen: false
      };
    });
  };
  addCard = (cardValue) => {
    const card = {
      value: cardValue,
      id: uuid()
    };
    // compare column IDs to currentColumnID
    // return the index of whichever column is "true"
    const index = this.state.columns.map((column, i) => {     
      if(column.id === this.state.currentColumnID) {
        return i;
      }
    });

    // add card to returned column

    this.setState(state => {
      return {
        modalOpen: false
      };
    });
  };

最佳答案

在您的 addCard 方法中。找到列,然后将卡片插入阵列。

addCard = (cardValue) => {
  const card = {
      value: cardValue,
      id: uuid()
  };

  // Find the column
  const column = this.state.columns.find(column => {
      return column.id === this.state.currentColumnID;
  })

  // add card to returned column
  if (column != null) {
      column.cards.push(card);
  }

  this.setState(state => {
      return {
          modalOpen: false
      };
  });
};

关于javascript - React - 如何将对象推送到嵌套在数组中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56011464/

相关文章:

javascript - React Router 路径中的领先标签

javascript - localStorage突然坏了

javascript - 负向查找在句子中查找 lat 匹配的单词

javascript - 在数组上创建一些过滤器,然后使用 "All"过滤器取消过滤

reactjs - redux hooks : "could not find react-redux context value; please ensure the component is wrapped in a <Provider>" 的 enzyme 测试错误

javascript - 类型 'Function' 的参数不可分配给类型 'ComponentType<never>' 的参数

JavaScript 计算器问题

javascript - Node.js 命令行中调用函数

javascript - Unity3D : Error with my code

ssl - 在我的 browserify React 应用程序中获取 DEPTH_ZERO_SELF_SIGNED_CERT