如何在 React 中将 JSON 响应呈现为下拉列表

2024-03-29

我目前正在尝试获取从 API 收到的一些 JSON 数据,并将其放入一个非常简单的 React 应用程序的下拉列表中。

到目前为止,这是我的 DropDown 组件:

import React from 'react';

var values;

fetch('http://localhost:8080/values')
    .then(function(res) {
        return res.json();
    }).then(function(json) {
        values = json;
        console.log(values);
    });

class DropDown extends React.Component {
    render(){
        return <div className="drop-down">
            <p>I would like to render a dropdown here from the values object</p>
            </div>;
    }
}

export default DropDown;

我的 JSON 看起来像这样:

{  
   "values":[  
      {  
         "id":0,
         "name":"Jeff"
      },
      {  
         "id":1,
         "name":"Joe"
      },
      {  
         "id":2,
         "name":"John"
      },
      {  
         "id":3,
         "name":"Billy"
      },
      {  
         "id":4,
         "name":"Horace"
      },
      {  
         "id":5,
         "name":"Greg"
      }
   ]
}

我希望下拉选项对应于每个元素的“名称”,并且当通过选择选项触发事件时将“id”用作元素标识符。任何有关将此数据放入响应用户输入的下拉列表中的建议将不胜感激。


你可以这样做:

import React from 'react';

var values;

class DropDown extends React.Component {

    constructor(){
        super();
        this.state = {
            options: []
        }  
    }

    componentDidMount(){
        this.fetchOptions()
    }

    fetchOptions(){
        fetch('http://localhost:8080/values')
            .then((res) => {
                return res.json();
            }).then((json) => {
                values = json;
                this.setState({options: values.values})
                console.log(values);
            });
    }
    render(){
        return <div className="drop-down">
            <select>
                { this.state.options.map((option, key) => <option key={key} >{option}</option>) }
            </select>
            </div>;
    }
}

export default DropDown;

基本上你正在初始化状态和设置options为空。

然后,当组件安装在浏览器中时,您可以获取选项。这些值设置为您所在的州this.setState().

注意:在以下位置进行任何 API 调用非常重要componentDidMount()并不是componentWillMount()。如果你调用它componentWillMount()该请求将提出两次。

然后通过将这些选项映射到渲染函数中来渲染它们

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 React 中将 JSON 响应呈现为下拉列表 的相关文章

  • PHP json_encode 将多个数组编码为一个对象

    我试图在一个 JSON 对象中返回多个数组 但在语法上遇到一些困难 一款 Android 应用程序从多个表接收更新 我希望在一个响应中返回这些更新 目前 这就是我对各种结果集进行编码的方式 json json encode array ta
  • 是否可以用 json 进行表达式/计算?

    我使用出色的 json server 作为应用程序的后端 它对于访问自定义端点以检索一些数据非常有用 但是如果它允许我进行计算 表达式以便我也可以模仿后端行为 那将会非常有用 以这个数据结构为例 products name football
  • 嵌套对象的 AJV 模式验证

    函数返回的对象看起来像这样 answer vehicle type 1 message Car model VW color red 答案 对象始终存在 其他字段基于 vehicle type E g 如果vehicle type 1 则有
  • 可选链接在 create-react-app 中不起作用

    In a create react app项目 我正在使用 babel plugin proposal optional chaining在我的 babelrc中 但是 我有这个错误 Module parse failed Unexpect
  • React + 路由器 + Google 标签管理器

    我花了一些时间在 Quickcypher com 上开发 MVP 我想开始进行一些分析 它对于跟踪总访问量非常有用 但是当我尝试跟踪使用 React Router 的网站上的不同 URL 时 情况却出问题了 我的方法是这样的 设置一个在某些
  • IdentityServer4 无法在生产环境中运行

    我正在使用 IdentityServer4 和 ASP NET Core 3 0 的 React 启动项目 预览版 4 一直运行良好 直到我构建解决方案并尝试使用 dotnet 命令从 cmd 提示符运行它 每次启动应用程序时 它都会告诉我
  • 有没有办法从函数内单击导航链接?

    基本上 我正在延迟导航 单击链接后 onClick 处理程序通过检查条件并调用另一个函数来阻止导航 如果满足特定条件 则仅该页面导航到另一个页面 那么我如何从该函数中触发 Navlink 单击 我能够通过使用解决这个问题event prev
  • 如何使用 fs.copyTpl 忽略 Yeoman 中的文件

    我怎样才能忽略文件 我想排除任何子目录中以 开头的所有文件 我使用这两种方法没有成功 this fs copyTpl this templatePath basicFiles this destinationPath answers ign
  • 如何从mapDispatchToProps内部访问状态

    需要根据状态或演示组件道具来调度操作 const mapDispatchToProps dispatch gt return onClick gt if state someValue this props someValue dispat
  • Antd 选择搜索框未呈现匹配项

    我有产品数据 我正在使用搜索值过滤数据 然后使用过滤后的数据呈现选项 产品数据作为道具来自全局 redux 存储 由于某种原因 下拉列表仅在搜索值为空时显示数据 当我开始输入时 filteredData已更新 组件也重新渲染 但选项不显示任
  • 尝试在本地主机上测试我的 php 文件,但只出现一个空白页面,没有错误消息

    我正在运行 Apache 和 mySQL 因为我检查了所有日志 似乎没有任何错误 我的目标是每当有新的表单条目时就向特定地址发送电子邮件 我对后端和 PHP 缺乏经验 所以我不太确定哪里出了问题 任何帮助将不胜感激
  • SyntaxError:无法在动态导入 Nextjs 的模块外部使用 import 语句

    我遵循了SunEditor的文档 它是这样的 import React from react import dynamic from next dynamic import suneditor dist css suneditor min
  • JSX 中的混合运算符

    我想在 JSX 中使用混合运算符 例如 datas datas map function data i return
  • MySQL JSON 存储与两个表

    与使用单独的元表相比 使用 JSON 在表中存储数据有什么好处吗 这是原始架构 Users Table UserId Username Etc 5 John Avatar Table Id UserId ImageName ImageTyp
  • 如何通过 GraphQL 从 json 获取数据?

    enter code here compdata id 1 title FlexBox id 2 title Grid layout enter code here file in src data data json enter code
  • Next JS - 源代码中缺少元标签

    我安装了多个元标记 例如标题 描述 关键字等 但是 它没有在查看源代码中显示这些标签 因此 Facebook 共享卡无法正常工作 我已经安装了og标签 但在 Facebook 上似乎找不到它们Scraper或我的查看来源 然而 它填充在客户
  • json_decode 返回 null 并带有不同的引号

    json decode foo bar true 这有效 但是这个返回NULL json decode foo bar true The json last error 输出4 JSON ERROR SYNTAX 我检查了以下问题的一些答案
  • 禁用 create-react-app 提供的 ESLint

    create react appv3 0 0 已发布 https github com facebook create react app blob master CHANGELOG md 它内部支持 TypeScript linting
  • 创建 df 以生成给定格式的 json

    我正在尝试生成一个 df 来生成下面的 json Json数据 name flare children name K1 children name Exact size 4 name synonyms size 14 name K2 chi
  • ReactJS setState 仅在嵌套在 setState 中时才有效

    问题 当我使用 this setState 并在回调中输出状态时 它根本不会改变 但是当我将 setstate 嵌套在 setstate 中时 它将正常工作 例子 这不行 this setState data newData 这确实有效 t

随机推荐

  • Android 创建日历事件

    我需要为 Android 应用程序创建多个日历事件 使用这个question https stackoverflow com questions 3721963 how to add calendar events in android 4
  • 从 C# 中的文本文件中读取数字

    这应该是很简单的事情 我只想从由空格分隔的标记组成的文本文件中读取数字和单词 在 C 中如何做到这一点 例如 在 C 中 以下代码可以读取整数 浮点数和字 我不想使用正则表达式或编写任何特殊的解析代码 ifstream in file tx
  • 使用 PdfMerger iText7 将 PdfDocument 转换为 byte[]

    我有一个要求 我使用生成不同的 pdf iText 7 1 11 我在用PdfMerger即时合并所有 pdf 我能够在本地系统成功生成 pdf 但应用程序需要发送bye 作为回应 我找到的解决方案here https kb itextpd
  • 标识符前面的::(双冒号)是什么意思?

    这条线 https github com rust lang libc blob 4af234205f440be38d9036a5bdbcfeed55fb2ced src unix linux like mod rs L2来自铁锈libc
  • ASP.NET真正的异步操作

    我正在尝试从 ASP NET 页面发出多个 HTTP 请求 页面本身不需要知道响应 并且应该继续处理并交付页面 我尝试将 HTTP 代码放入 BackgroundWorker 中并异步运行它 但是我最初收到以下错误 在此上下文中不允许异步操
  • 返回上一屏幕时,反应导航焦点立即模糊于输入

    当我导航到新屏幕时 我想专注于文本输入 当我将屏幕添加到堆栈时 这有效 但当我返回堆栈时 这不起作用 相反 输入聚焦一秒钟并立即模糊 这是我得到的 屏幕 A 位于堆栈中的第一个 输入立即模糊 屏幕 B 已添加到堆栈中并按预期工作 知道是什么
  • 尝试上传到使用多个元数据生成的 GCP 签名网址时收到 403

    我生成了一个 GCP 签名网址 标头中包含两个元数据值 例子 x goog meta reviewer 简 x goog meta author 杰克 当我尝试将文件上传到生成的签名 URL 并在标头中设置元数据时 我收到 403 禁止请求
  • SDL_RENDERER_PRESENTVSYNC 显示不一致

    我最近决定开始使用 SDL 作为我的库之一来编写 C 游戏 在编写程序和学习 SDL 的过程中 我偶然发现了程序中的一个特殊错误 并决定在 SSCCE 中复制它 以确保我没有发疯 问题似乎是 当我将 SDL RENDERER PRESENT
  • Powershell v4 不自动导入模块

    我在用Microsoft PowerShell v4 PS C gt get host Name ConsoleHost Version 4 0 InstanceId 3b4b6b8d 70ec 46dd 942a bfecf5fb6f31
  • Facebook 应用程序托管在 Google App Engine 上

    我是 Facebook 应用程序的新手 我已经在 GAE 上启动并运行了一个应用程序 使用 python 我想将它与 Facebook 集成 这样我就可以访问一些用户的数据来帮助我个性化应用程序 例如喜欢的页面 兴趣 他们来自哪里等数据 还
  • 在 GitHub for Windows 中克隆多个分支

    有时我需要在本地磁盘上同时拥有 GitHub 存储库的两个不同分支 尤其是在处理 gh pages 时 我通常通过在不同的文件夹中创建存储库的多个克隆来实现此目的 并使用不同的分支进行克隆 是否可以在 Windows UI 的 GitHub
  • System.Xml.XmlException:给定编码中的字符无效。 8271 行,位置 163

    我正在编写一个简单的 XML 解析器 它将传递以下 XML 输出 http www cpalead com dashboard reports campaign rss php id 187000 http www cpalead com
  • 是否可以使用字典理解来反转Python中的字典

    我想反转字典key value使用字典理解进行配对 但如果新字典的键有多个值 则它将被最后一个值替换 如果重复某个键 是否可以使用理解附加到新字典中的值 Input test di a 1 b 2 c 3 d 2 Code v k for
  • Google Chrome 开发者工具未在 css 旁边显示 css 文件名

    It s a bug of google chrome or there are some guidelines which i should stick to to return that feature 谢谢 UPDATED问题是由 p
  • 如何在 Visual Studio 2008 中保持文档选项卡按上次使用情况排序

    注册表更改是什么 告诉 Visual Studio 始终将当前文档放置在窗口的左侧 默认实现是这样的 如果您打开了 10 个文档 并且您正在编辑第 5 个文档 那么它的选项卡将是该组中的第 5 个选项卡 随着注册表的更改 当您单击第五个文档
  • numpy.array 的总和部分

    假设我有以下数组 a np array 1 2 3 4 5 6 7 8 9 10 11 12 3 5 6 7 8 9 我想对第一行的前两个值求和 1 2 3 然后是接下来的两个值 3 4 7 进而5 6 11 对每一行依此类推 我想要的输出
  • HTML5 章节与文章

    我有一个由各种 部分 组成的页面 例如视频 新闻源等 我有点困惑如何用 HTML5 表示这些 目前我将它们作为 HTML5 section s 但经过进一步检查 看起来更正确的标签是 section
  • 如何从列表创建分组条形图

    我正在尝试绘制一个条形图 它比较两种不同情况下的多个项目的数量 所需的输出将是一个条形图 其中 4 4 8 个条形图彼此相邻 指示每种情况的每种类型的数量 这是我编写的初始代码 它没有给出我的期望 我该如何修改这个 import numpy
  • 如何在 Spring Data Elasticsearch 2.2.3.RELEASE 中配置 Rest 高级客户端的套接字超时

    我将 Spring Boot Starter Data Elasticsearch 2 2 3 RELEASE 与 Elasticsearch v6 8 6 结合使用 我配置了 RestHighLevelClient 以连接到集群 现在我在
  • 如何在 React 中将 JSON 响应呈现为下拉列表

    我目前正在尝试获取从 API 收到的一些 JSON 数据 并将其放入一个非常简单的 React 应用程序的下拉列表中 到目前为止 这是我的 DropDown 组件 import React from react var values fet