Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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
Javascript 试图将一组对象作为道具传递,但react仍将其作为对象读取_Javascript_Reactjs_React Redux - Fatal编程技术网

Javascript 试图将一组对象作为道具传递,但react仍将其作为对象读取

Javascript 试图将一组对象作为道具传递,但react仍将其作为对象读取,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我试图用从API中筛选资源并删除一些不必要的对象键后获得的数据呈现一个表,但每当我试图将数组作为道具传递给我的表组件时,我都会收到一个错误,说“对象作为道具类型无效”。 我的过滤函数 const handleFetch = (query) => { const search = Accountdetails?.filter( (data) => data.holderArpAccountNumber == query, ); return sear

我试图用从API中筛选资源并删除一些不必要的对象键后获得的数据呈现一个表,但每当我试图将数组作为道具传递给我的表组件时,我都会收到一个错误,说“对象作为道具类型无效”。 我的过滤函数

const handleFetch = (query) => {
    const search = Accountdetails?.filter(
      (data) => data.holderArpAccountNumber == query,
    );
    return search;
  };
我的阵列:

const data = handleFetch(accountNumber)?.map((item) => {
    return {
      check: <Checkbox />,
      id: 1,
      holderName: item.holderName,
      certificateNumber: item.certificateNumber,
      holderCompanyAccountNumber: item.holderArpAccountNumber,
      clientCompany: item.issuingCompanyName,
      shareVolume: item.volumeOfBonds,
    };
  });
const data=handleFetch(accountNumber)?.map((项目)=>{
返回{
支票:,
id:1,
holderName:item.holderName,
certificateNumber:item.certificateNumber,
holderCompanyAccountNumber:item.holderArpAccountNumber,
客户公司:item.issuingCompanyName,
shareVolume:item.volumeOfBonds,
};
});
表组件:

<Table headers={headers} body={data} />
function Table({ headers, body }) {
  return (
    <div className="preview_and_save">
      <div className="greenpole-header">Exported CSCS Advice File</div>
      <table cellSpacing={1} cellPadding={0} className={'tableGrid'}>
        <thead className={'tableHead'}>
          <tr>
            {headers.map((item, i) => {
              return <td key={i}>{item}</td>;
            })}
          </tr>
        </thead>
        <tbody className={'tableBody'}>
          <tr>
            {body.map((item, j) => (
              <td key={j}>{item}</td>
            ))}
          </tr>
        </tbody>
      </table>
    </div>
  );
}

export default Table;

表组件:

<Table headers={headers} body={data} />
function Table({ headers, body }) {
  return (
    <div className="preview_and_save">
      <div className="greenpole-header">Exported CSCS Advice File</div>
      <table cellSpacing={1} cellPadding={0} className={'tableGrid'}>
        <thead className={'tableHead'}>
          <tr>
            {headers.map((item, i) => {
              return <td key={i}>{item}</td>;
            })}
          </tr>
        </thead>
        <tbody className={'tableBody'}>
          <tr>
            {body.map((item, j) => (
              <td key={j}>{item}</td>
            ))}
          </tr>
        </tbody>
      </table>
    </div>
  );
}

export default Table;
函数表({headers,body}){
返回(
导出的CSCS建议文件
{headers.map((项,i)=>{
返回{item};
})}
{body.map((项,j)=>(
{item}
))}
);
}
导出默认表;

logging typeOf data给出一个对象,但logging Array.isArray(data)给出true

typeOf[]
将返回
object
,因为在JavaScript中数组是一种特殊类型的
对象
,其中键是索引号。
尝试控制台日志记录
数据
并查看其中的内容。

typeof[]
将返回
对象
,因为在JavaScript中数组是一种特殊类型的
对象
,其中键是索引号。
尝试控制台日志记录
数据
并查看其中的内容。

我制作了一个对象克隆器函数;看看

//这个克隆函数的工作原理是,它获取对象的所有属性名,并将其设置为它们的值。。递归函数适用于具有多个层的对象。。stringToFile函数是我用来理解正在进行的链接(如循环数据)的函数。。以及它看到与其他对象相等的对象的位置。。它会复制这个版本
功能克隆(obj){
if(typeof obj!=“object”){const x=obj;返回x}
函数stringToFile(m,files){var x=files
如果(!m | | m==“”){return(files)}var error=0
m=m.split('\\');m.forEach(a=>{if(x[a]){x=x[a]}else{error=1})
if(x==files | | error){return(0)}return(x)
}
var newObj={};if(数组的obj实例){newObj=[]}
var arr=[];var arr1=[];var newObj1=newObj
函数递归(obj,newObj,string){
Object.getOwnPropertyNames(obj).forEach((a,i)=>{const string1=string
常量x={[a]:Object.getOwnPropertyDescriptor(obj,a)}
if(对象的类型=对象”&&obj[a]!=null){
newObj[a]={};if(obj[a]数组实例){newObj[a]=[]}
如果(!arr.includes(obj[a])){
arr.push(obj[a]);if(string==“”){string+=a}else{string+=`\\\${a}}
arr1.push(字符串);递归(obj[a],newObj[a],字符串)
}
else{newObj[a]=stringToFile(arr1[arr.indexOf(obj[a])],newObj1)}
string=string1;返回;
}Object.defineProperties(newObj,x)
})
}递归(obj,newObj,“”);返回newObj
}
//示范
var myObj={a:1,b:2,c:{d:3,e:{f:4}}
myObj.f=myObj//使其循环以供演示
var clonedObj=克隆(myObj)
console.log(clonedObj==myObj)//false
console.log(myObj.f==clonedObj.f)//false
clonedObj.a++;clonedObj.c.d++//这些仅在克隆中添加
log([clonedObj.a,clonedObj.c.d])//2,4
log([myObj.a,myObj.c.d])//1,3

console.log(myObj);console.log(clonedObj)//自己查看全部差异
我制作了一个对象克隆器函数;看看

//这个克隆函数的工作原理是,它获取对象的所有属性名,并将其设置为它们的值。。递归函数适用于具有多个层的对象。。stringToFile函数是我用来理解正在进行的链接(如循环数据)的函数。。以及它看到与其他对象相等的对象的位置。。它会复制这个版本
功能克隆(obj){
if(typeof obj!=“object”){const x=obj;返回x}
函数stringToFile(m,files){var x=files
如果(!m | | m==“”){return(files)}var error=0
m=m.split('\\');m.forEach(a=>{if(x[a]){x=x[a]}else{error=1})
if(x==files | | error){return(0)}return(x)
}
var newObj={};if(数组的obj实例){newObj=[]}
var arr=[];var arr1=[];var newObj1=newObj
函数递归(obj,newObj,string){
Object.getOwnPropertyNames(obj).forEach((a,i)=>{const string1=string
常量x={[a]:Object.getOwnPropertyDescriptor(obj,a)}
if(对象的类型=对象”&&obj[a]!=null){
newObj[a]={};if(obj[a]数组实例){newObj[a]=[]}
如果(!arr.includes(obj[a])){
arr.push(obj[a]);if(string==“”){string+=a}else{string+=`\\\${a}}
arr1.push(字符串);递归(obj[a],newObj[a],字符串)
}
else{newObj[a]=stringToFile(arr1[arr.indexOf(obj[a])],newObj1)}
string=string1;返回;
}Object.defineProperties(newObj,x)
})
}递归(obj,newObj,“”);返回newObj
}
//示范
var myObj={a:1,b:2,c:{d:3,e:{f:4}}
myObj.f=myObj//使其循环以供演示
var clonedObj=克隆(myObj)
console.log(clonedObj==myObj)//false
console.log(myObj.f==clonedObj.f)//false
clonedObj.a++;clonedObj.c.d++//这些仅在克隆中添加
log([clonedObj.a,clonedObj.c.d])//2,4
log([myObj.a,myObj.c.d])//1,3

console.log(myObj);console.log(clonedObj)//查看您自己的全部差异
您说过您有一个对象数组:可能是
{item}
发生了错误。如果
item
是一个对象,那么React将不太喜欢它。我会尝试
{JSON.stringify(item)}
,看看这是否会使错误消失。当我尝试时,我得到了这个错误:将循环结构转换为JSON-->从构造函数'FiberNode'正确的对象开始