【问题标题】:Objects are not valid as a React child (APIs, JSON) [duplicate]对象作为 React 子项(API,JSON)无效 [重复]
【发布时间】:2020-09-03 18:00:59
【问题描述】:

我无法显示我的 JSON (DataUser.name.first) 的属性

`
    import React, {useEffect,useState}from 'react';
    import Article from '../components/Article';
    import '../styles/containers/Home.scss';

    const Home = () => {
      const [DataUser, setDataUser] = useState("Cargando");

      useEffect(() => {
        const Cargar = async () => {
          let respuesta = await fetch(`https://randomuser.me/api/`);
          let respuestaJSON = await respuesta.json();
          setDataUser(respuestaJSON.results[0]);
        };
        Cargar();
      }, []);

      return (
        <>
          <div className='Home'>
            {console.log(DataUser.gender)} /*:)*/
            {console.log(DataUser.name.first)} /*:(*/
          </div>
        </>
      );
    };
    export default Home;

`

我正在尝试将属性传递给反应中的组件,当我传递单元格编号时,一切正常。但是当我尝试传递名称时,我得到一个错误。

我的 JSON "results": [ { "gender": "male", "name": { "title": "Mr", "first": "Elliot", "last": "Thompson" }, }, ],

我想获取名称中的值。我看到的问题是我们在另一个对象中有一个对象。而不是对象内的数组。

【问题讨论】:

  • 为什么不将DataUser.name.first(而不是DataUser.name,它是一个对象而不是字符串)传递给Article
  • 是的:这是 JSON。我只想从 (first) "name": { "title": "Mr", "first": "Alex", "last": "Blanco" }, 获取数据
  • &lt;Article cell={DataUser.cell} name={DataUser.name.first}/&gt; ?
  • 我添加组件代码“Articulo”
  • 我认为.map函数不起作用,因为我只想要属性(name.first)

标签: javascript reactjs


【解决方案1】:

我认为问题出在您的文章组件中,请检查您如何处理 name 属性。

你应该把它当作一个对象:

DataUser.name = {
  "title": "Miss",
  "first": "Zenóbia",
  "last": "da Paz"
}

或者你也可以传递其中一个键:title、first、last

<Article cell={DataUser.cell} name={DataUser.name.first}/>

如果无法解决,请附上组件代码。

【讨论】:

  • 我添加组件代码“Articulo”
  • // 在渲染之前检查 DataUser 对象 if (!DataUser) { return null; }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 2021-02-24
  • 1970-01-01
相关资源
最近更新 更多