react useEffect 中进行异步操作,并获取值

59 阅读1分钟
const [rightArr,setRightArr]=useState([])

useEffect(()=>{
    const getArrData=async ()=>{//声明异步函数
        let rightArr=[]
        let param={}
        param.pNumber=0
        param.userId=storage.getStorage(USER_ID)
        await queryPermissionsByUser(param).then(res =>{//接口请求数据
            if(res.data && res.data.length!=0){
                res.data.map(item=>{
                    if(item.children && item.length!==0){
                        //console.log(item.children)
                        item.children.map(childrenItem=>{
                            rightArr.push(childrenItem.url)
                        })

                    }
                })
                setRightArr(rightArr)//将获取的数据设置到状态内,后续代码中再使用
                console.log(router.pathname)
                console.log(rightArr)
            }
            else {throw new Error('USER_PERMISSIONLIST must return a non-null array !')}

        })
    }
    getArrData()

},[])