Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Reactjs中单击按钮将数据添加到数组中_Reactjs - Fatal编程技术网

在Reactjs中单击按钮将数据添加到数组中

在Reactjs中单击按钮将数据添加到数组中,reactjs,Reactjs,我有一个数组 let newLinkedArray=[]; newDocArray && newDocArray.map(doc => { newLinkedArray.push({DocName:doc, Type:"Checks", DocID:0}) }) 它不会改变,单击包含数据的按钮后,我想将该数据添加到包含相同字段的数组中。每次单击一个按钮,我都想将每个数据推送到这个数组中。根据我的代码

我有一个数组

let newLinkedArray=[];
            newDocArray && newDocArray.map(doc => {
            newLinkedArray.push({DocName:doc, Type:"Checks", DocID:0})
             })
它不会改变,单击包含数据的按钮后,我想将该数据添加到包含相同字段的数组中。每次单击一个按钮,我都想将每个数据推送到这个数组中。根据我的代码,选定的数据仅添加到该数组中

let newAddArr=[{
                "DocName":selectedRow !== null? docTolinked[selectedRow].ShortPath:'',
                "Type" :selectedRow !== null? docTolinked[selectedRow].Type:'',
                "DocID": selectedRow !== null? docTolinked[selectedRow].DocID:''
            }]
            let newAddLinkArr =[]
            newAddLinkArr =addDoc1 && [...newLinkedArray, ...newAddArr];

这是我的密码。单击按钮时,设置了“addDoc1”标志。如何在每个按钮上单击选定行将其添加到此数组?

这取决于您喜欢功能组件还是有状态组件。这是一个使用功能方法的解决方案:

import React, { useState, useCallback } from 'react';
const Elem = () => {
  const [array, setArray] = useState([]);
  const addNewRow = useCallback(() => {
    // selectedRow comes from somewhere else
    const newAddArr = {
      "DocName":selectedRow !== null? docTolinked[selectedRow].ShortPath:'',
      "Type" :selectedRow !== null? docTolinked[selectedRow].Type:'',
      "DocID": selectedRow !== null? docTolinked[selectedRow].DocID:''
    };
    setArray([...array, newAddArr]);
  }, [array, setArray]);
  return (
    <button onClick={addNewRow}>Click me!</button>
  );
};
import React,{useState,useCallback}来自“React”;
常量=()=>{
const[array,setArray]=useState([]);
const addNewRow=useCallback(()=>{
//selectedRow来自其他地方
常数newAddArr={
“DocName”:selectedRow!==null?doctorined[selectedRow]。短路径:“”,
“类型”:selectedRow!==null?doctorinked[selectedRow]。类型:“”,
“DocID”:selectedRow!==null?doctorined[selectedRow]。DocID:“”
};
setArray([…数组,newAddArr]);
},[array,setArray]);
返回(
点击我!
);
};