React JS:数组未传递给状态

Posted

技术标签:

【中文标题】React JS:数组未传递给状态【英文标题】:React JS: Array is not being passed to state 【发布时间】:2021-12-01 06:05:47 【问题描述】:

我有一个名为“array”的对象数组。当我尝试将它传递给 useState 'rows' 以在我的程序中使用它时,数据不会被复制到 rows 状态并且它给了我一个空数组。

const project = () => 
 const [rows, setRows] = useState([]);

 const function = () => 

 var array = [username: "username1", username: "username2"];
 
 console.log(array);
 //The output here is: 
 //(2) […, …]
 //0: username: 'username1'
 //1: username: 'username2'
 //length: 2
 //[[Prototype]]: Array(0)

  array.map((row) => 
    return setRows(rows => [...rows, row])          
            
   )

  console.log(rows)
 //The output here is: 
 //[]
 //length: 0
 //[[Prototype]]: Array(0)

 //Another method tried
 //setRows(array)
//console.log(rows)
 //The output here is:
 //[]
 //length: 0
 //[[Prototype]]: Array(0)


 

return (....);



export default project;

【问题讨论】:

【参考方案1】:

map 不是这样做的正确方法。

使用forEachfor 循环代替它。

试试这个:

array.forEach(row => 
    setRows(rows => [...rows, row]);
);

以下文档将帮助您更好地了解map 的用法。

https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/Array/map

https://www.w3schools.com/jsref/jsref_map.asp

【讨论】:

以上是关于React JS:数组未传递给状态的主要内容,如果未能解决你的问题,请参考以下文章

React Js使用onChange将数组内的值更新到子组件

React/Redux:如何将此状态从一个组件传递到另一个文件?

将数组置于状态时出错 - React

React + Apollo:GraphQL 错误数组未传递到组件中

如何在 React js 中将 props 传递给组件

React.js - 功能组件中的状态未更新[重复]