Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应-列表中对象的第二层未定义_Javascript_Reactjs - Fatal编程技术网

Javascript 反应-列表中对象的第二层未定义

Javascript 反应-列表中对象的第二层未定义,javascript,reactjs,Javascript,Reactjs,我是React的新手,我决定做半个人项目,这意味着我从教程中选了一些项目,给自己一些小任务来模拟工作中的任务。 我在我的代码中遇到了多个错误,我不确定如何解决它们。如果您能给我一些关于如何正确使用谷歌的提示,我将不胜感激 我目前面临的问题有: 在App.js第76,77行中,它说响应中的对象是未定义的,但当我到达一个国家时,我是这样获取的。 在components/ConstantWeather->constant weather中css不工作?但是所有东西都正确导入了,我需要对webpack做

我是React的新手,我决定做半个人项目,这意味着我从教程中选了一些项目,给自己一些小任务来模拟工作中的任务。 我在我的代码中遇到了多个错误,我不确定如何解决它们。如果您能给我一些关于如何正确使用谷歌的提示,我将不胜感激

我目前面临的问题有:

在App.js第76,77行中,它说响应中的对象是未定义的,但当我到达一个国家时,我是这样获取的。 在components/ConstantWeather->constant weather中css不工作?但是所有东西都正确导入了,我需要对webpack做些什么才能工作吗?它会不会把index.css中的其他css代码弄乱

在控制台中,即使我在第74行中传递给组件unique keycityId,我也会得到unique key错误

也许这不是发布问题的方式,如果我违反了任何规则,请让我知道

为了不从嵌套对象的API响应中获取未定义的错误,应该添加空检查。您需要检查el.sys是否已定义

尝试在CSS中使用普通类。只需导入CSS文件并使用字符串作为类名

必须将键设置为from map函数后面的元素。在这种情况下,它应该是

为了不从嵌套对象的API响应中获取未定义的错误,应该添加空检查。您需要检查el.sys是否已定义

尝试在CSS中使用普通类。只需导入CSS文件并使用字符串作为类名

必须将键设置为from map函数后面的元素。在这种情况下,它应该是


要解决第一个问题,您需要等待api成功检索数据,然后只有您才能映射数据。所以,您可以做的是将weatherConst的初始状态设置为空数组,如下所示

const [weatherConst, setWeatherConst] = useState([]);
然后,在映射数据时,可以检查所获取数据的长度。检查时,您应该执行布尔运算,而不仅仅是长度检查

记住,这只是一个例子,做同样的事情有多种方法

对于CSS问题,您需要为div分配一个适当的类,即className=Card

对于第三个问题,您需要将密钥分配给ConstantWeather组件,如上面的代码所示


要解决第一个问题,您需要等待api成功检索数据,然后只有您才能映射数据。所以,您可以做的是将weatherConst的初始状态设置为空数组,如下所示

const [weatherConst, setWeatherConst] = useState([]);
然后,在映射数据时,可以检查所获取数据的长度。检查时,您应该执行布尔运算,而不仅仅是长度检查

记住,这只是一个例子,做同样的事情有多种方法

对于CSS问题,您需要为div分配一个适当的类,即className=Card

对于第三个问题,您需要将密钥分配给ConstantWeather组件,如上面的代码所示

@matej,如果你正在寻找更新,我希望这对你有用。

@matej,如果你正在寻找更新,我希望这对你有用。



您的问题中需要包含的内容请参见。您的问题中需要包含的内容请参见。您好,谢谢您的回答,关于在何处添加该复选框是否正确的任何提示?您可以直接将此控件添加到道具。el.sys?el.sys.country:''。它可以是这样的您好,谢谢您的回答,关于在哪里添加该检查是正确的任何提示?您可以直接将此控件添加到道具。el.sys?el.sys.country:''。可能是这样的嘿,谢谢你的回答!第一个和第三个问题通过您的示例解决:对于第二个问题,我不太清楚您的意思,您使用的是Material UI?@Alona不,我使用的是纯cssHm。。。关于第二个问题,如果我这样使用它,只是给它命名卡片,那么它可能会干扰其他css?最好的方法是什么?这是你需要的代码{props.cityName},{props.country}{props.temperature}嘿,谢谢你的回答!第一个和第三个问题通过您的示例解决:对于第二个问题,我不太清楚您的意思,您使用的是Material UI?@Alona不,我使用的是纯cssHm。。。关于第二个问题,如果我这样使用它,只是给它命名卡片,那么它可能会干扰其他css?最好的方法是什么?这是您需要的代码{props.cityName},{props.country}{props.temperature}@matej-我已经创建了对您的Git存储库的Pull请求,非常感谢!我当然会寻找更新,看看其他开发者是怎么想的!我有新版本,所以我会很快上传@Matej,合并拉取请求,看看你想要什么@Matej,太好了@Matej,如果你解决了你的问题,那么请标出解决了你问题的答案。如果你愿意,我愿意检查你的更新。@matej-
我已经创建拉请求到您的Git存储库,非常感谢!我当然会寻找更新,看看其他开发者是怎么想的!我有新版本,所以我会很快上传@Matej,合并拉取请求,看看你想要什么@Matej,太好了@Matej,如果你解决了你的问题,那么请标出解决了你问题的答案。如果你愿意,我愿意检查你的更新。
  return <ConstantWeather 
              cityId={el.id} <-- it is here
              cityName={el.name} 
              country={el.sys.country} 
              temperature={el.main.temp} 
              />
  })
const [weatherConst, setWeatherConst] = useState([]);
let constantWeatherList = weatherConst.length > 0 && weatherConst.map(el => {
    return <ConstantWeather 
              key={el.id}
              cityId={el.id} 
              cityName={el.name} 
              country={el.sys.country} 
              temperature={el.main.temp} 
              />
  })
const ConstantWeather = props => {
  return (
    <div className="Card" key={props.cityId}>
      <div>
        {props.cityName}, {props.country}
      </div>
      <div>{props.temperature}</div>
      <img alt="" />
    </div>
  );
};

const ConstantWeatherList = props =>
  (props.weatherConst || [])
    .filter(el => el) // Filter null if you getting from API
    .map(el => {
      return (
        <ConstantWeather
          key={el.id}
          cityId={el.id}
          cityName={el.name}
          country={el.sys.country}
          temperature={el.main.temp}
        />
      );
    });

<ConstantWeatherList weatherConst={data} />

// Styles
.Card {
  display: inline-block;
  border: 1px solid;
  padding: 10px;
  margin: 10px;
}