首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用axios调用获取对象中的数组

无法使用axios调用获取对象中的数组
EN

Stack Overflow用户
提问于 2021-03-18 04:44:33
回答 2查看 128关注 0票数 0

见下面的代码:

代码语言:javascript
复制
//useState to store the file data:
const [gotData, setData] = useState({});

useEffect(() => {
    //calling the file's data. 
    instance(`/${filename.replace(" ", "%20")}`)
    .then(res => setData(res.data))
    .catch(err => console.log(err));
},[filename]);

return(
    <div className="__te_onlineBanking__Form">
        <form>
            {gotData.formInputFields.map(elem => {return(
            <span>
                <label htmlFor= {elem.id}>{elem.labelText}</label>
                <input type= {elem.inputType} required id = {elem.id} placeholder = {elem.placeholder} name = {elem.name}/>
            </span>)
            })}
        </form>
        {console.log(gotData.formInputFields)}
        <button onClick = {close}>Submit</button>
    </div>
)

这个问题发生在映射函数中。现在,在上面的代码中,我使用setData(res.data),FYI直接将数据存储到状态变量中,res.data是一个具有某些属性的对象,以及表单输入字段名的数组。因此,当我试图编写时,gotData.formInputFields.map(),我得到一个错误,它说不能读取属性,映射为未定义的。但是,当我设置setData(res.data.formInputFields),,然后调用gotData.map(),时,问题是解决了。但是,我不想使用两个单独的useStates来存储表单输入字段数据和可能需要的其他信息。我只想用gotData.formInputFields.map().调用( setData(res.data) )请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-18 04:49:23

如果我不困惑的话,您的问题是gotData是一个对象或JSON,所以第一次迭代是gotData.formInputFields.map,但是formInputFields并不存在,因为您编写了useState({}),所以初始状态是gotData = {}

记住,一旦对AJAX调用有了响应,就会有gotData上的数据,这将比第一次呈现花费更多的时间。

我建议您编写useState({ formInputFields: [] })或将您的返回从{gotData.formInputFields.map(elem => {return(更改为{gotData?.formInputFields?.map(elem => {return({gotData && gotData.formInputFields && gotData.formInputFields.map(elem => {return(

票数 0
EN

Stack Overflow用户

发布于 2021-03-18 04:59:50

使用可选链

代码语言:javascript
复制
gotData.formInputFields?.map(...)

这将首先检查属性formInputFields是否存在于gotData中,然后调用map方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66684920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档