首页 > 解决方案 > 我在 React 中的 State 变量,其数据类型为数组,其 setter 应该作为 push() 对数组不起作用

问题描述

代码:

const [departmentNames,setDepartmentNames]=React.useState([]);


console.log(typeof(departmentNames));
      Object.keys(departments).forEach(
      (key)=>{
              console.log("department="+departments[key].name)
              setDepartmentNames(departments[key].name);        
             }
                                       );

在第一行代码中,我创建了一个部门名称作为数组,但在行中

console.log(typeof(departmentNames));

输出是字符串。

我如何将 DepartmentNames 设为一个 ARRAY,其设置器为 push()。

标签: reactjsreact-nativereact-hooks

解决方案


您如何创建一个新数组,然后在完成创建后使用 setter 设置状态。例如:

const [departmentNames,setDepartmentNames] = React.useState([]);
let newArray = [];

Object.keys(departments).forEach((key)=>{
    console.log("department="+departments[key].name)
    newArray.push(departments[key].name)        
});
setDepartmentNames(newArray);

推荐阅读