首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用Array.map在React中呈现数组

无法使用Array.map在React中呈现数组
EN

Stack Overflow用户
提问于 2020-09-28 17:36:04
回答 3查看 113关注 0票数 2

我使用axios获取用户名数组,并使用setState更新状态。我已将users记录到控制台,以确保它是一个阵列。

代码语言:javascript
运行
复制
axios.get("http://localhost:5000/users/")
        .then((res) => {
            if (res.data.length > 1) {
                const users = res.data.map(el => el.username);

                setState((preValue) => {
                    return {
                        ...preValue,
                        users : users
                    }
                })
                console.log(state)
            }

        })
        .catch((err)=>console.log(err)) 

当它在JSX中呈现出来时。数组的map方法返回未定义的错误。但是,可以将数组呈现为字符串。

代码语言:javascript
运行
复制
<h3>Edit Exercise</h3>
            <form onSubmit={onSubmit}>
                <div className="form-group">
                    <label>Username: {state.users}</label>
                    {/* <select required className="form-control"
                        value={state.username} onChange={onChangeUsername}>
                        {
                            state.users.map(function (user) {
                                return <option key={user} value={user}>{user}</option>
                            })
                        }
                    </select> */}
                </div>
EN

Stack Overflow用户

发布于 2020-09-28 17:50:55

如果您的组件是类组件,则应在状态(this.state.users)之前使用此关键字。在使用map时,您可以使用Optional chaining检查它是未定义的还是null。

因此,它将是这样的:

代码语言:javascript
运行
复制
{ this.state?.users.map(function (user) {
                                return <option key={user} value={user}>{user}</option>
                            })
}
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64099572

复制
相关文章

相似问题

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