代码之家  ›  专栏  ›  技术社区  ›  Hasan Zubairi

React使用另一个对象数组的值更新对象数组

  •  0
  • Hasan Zubairi  · 技术社区  · 11 月前

    在我的项目中,我使用了一个文本框,用户可以在其中粘贴带有一组问题和答案的文本。我需要获得输入,拆分数组中的每一行,并向setState数组中添加一个对象,其中包含该行的索引和内容。

    setState中对象的数组为

    const [question, setQuestion] = React.useState([{quin:0,content:'',examid:''}])
    

    并且在文本粘贴到文本框中之后

    function changeText(e){
          let v = e.target.value;
          let ar = v.split('\n');
          let qu = [{quin:0,content:'',examid:''}];
          
          //console.log(ar)
          ar.forEach((element,index) => {
            
              qu.push([...qu,{quin:index,content:element,examid:'ABCD'}])            
            
          });
    
          setQuestion(qu);
          console.log('q: ' + JSON.stringify(question))
          
      }
    
    1 回复  |  直到 11 月前
        1
  •  0
  •   Ikram Akbar    11 月前
    1. 已删除的初始化 qu 使用单个对象。不需要它,因为我们已经在循环中推动对象了。
    2. 简化了 push 在循环内直接推动对象 { quin: index, content: element, examid: 'ABCD' } 而不是传播现有的 qu 大堆 以下是更正后的版本:
    function changeText(e) {
      let v = e.target.value;
      let ar = v.split('\n');
      let qu = [];
    
      ar.forEach((element, index) => {
        qu.push({ quin: index, content: element, examid: 'ABCD' });
      });
    
      setQuestion(qu);
    }
    

    这应该使用对象数组正确地更新状态,其中每个对象表示从文本框中的文本中提取的问题。