当前位置: 首页 > 知识库问答 >
问题:

如何调用作为变量存储在不同组件中的JSON数据?

彭霄
2023-03-14

我目前正在使用axios从我的api中提取JSON数据,我正在映射这个数据并将其存储为变量。我希望能够在我的react组件中调用这些变量,但我似乎找不出最好的方法。

获取JSON数据并将其存储为变量

function ProfileOne(){
  const [profiles, setProfiles] = useState([])

  useEffect(() => {
      axios.get("api/profiles/")
          .then(res =>{
              console.log(res)
              setProfiles(res.data)
          })
          .catch(err => {
              console.log(err)
          })
  }, [])
  return (
                  profiles.map(profile => {
                    const { name } = profile;
                    })
            <div>
                <h2><b>{profile.name}</b></h2>
            </div>

  )
}

我希望能够在react组件中调用类似Profile.Major的东西,但我目前尝试的方法并不奏效。请让我知道这样做的正确方法。提前谢谢你。

共有1个答案

高鸿振
2023-03-14

如果要将数据从一个组件传递到另一个组件,则可能需要重新构造应用程序或实现一个状态管理库,如Redux。就我个人而言,我会将API调用移到父组件,然后将数据作为道具传递给子组件。父组件如下所示:

function ParentComponent() {

const [profiles, setProfiles] = useState([])

useEffect(() => {
  axios.get("api/profiles/")
      .then(res =>{
          console.log(res)
          setProfiles(res.data)
      })
      .catch(err => {
          console.log(err)
      })
   }, [])

return (
    <>
      <ProfileOne profiles={profiles} />
      <OtherComponent profiles={profiles />
    </>
    );
}

在子组件中:

function ProfileOne(props){

    return props.profiles.map(profile => (
                   <div>
                       <h2><b>{profile.name}</b></h2>
                   </div>
               )
}
 类似资料:
  • 问题内容: 我需要能够调用一个函数,但是函数名称存储在变量中,这可能吗?例如: 问题答案: 要么

  • 我有一个依赖于redux存储的组件。我的redux商店看起来像这样 所以基本上,当我刷新页面时,存储区消失了,需要一些时间来获取数据并将其设置为存储区,如上所述 我有一个组件,它需要company_id来获取有关该公司的数据 使用react-redux我得到了company_id 此组件,componentDidMount在存储区接收公司id数据之前被激发。所以我想要的是在这个组件从redux商店

  • 问题内容: 我有一个在浏览器中打开JSON数据的链接,但是不幸的是我不知道如何读取它。是否可以使用JavaScript以CSV格式转换此数据并将其保存在JavaScript文件中? 数据如下: 我能找到的最接近的是:将MSExcel的JSON格式转换为CSV格式 但是它将下载到CSV文件中,我将其存储在一个变量中,即整个转换后的数据。 还想知道如何更改转义字符:恢复正常。 我尝试了这段代码: 但这

  • 我对列有网格。在第二列中,我必须组合框(例如在第一行和第三行)。如何为它们设置不同的存储空间?第二个组合框的值取决于第一个组合框 这是一张图片 我看到一个例子,但是有不同的列,而不是行

  • 我可以根据编号对下面的代码进行排序吗? 就像数据被排序一样,假设升序应该如下所示: 我的代码: 我试过以下方法,但我觉得我做错了什么。但我不知道是什么。 你能告诉我我做错了什么吗?我可以根据名称对这些数据进行排序吗?

  • 我在列表中有一个csv文件路径名列表,我正在尝试将它们保存为数据框。我该怎么做? 问题是它只打印。但我不知道如何保存。我想将所有数据框另存为变量,最好是它们的文件名。