javascript - Prop 数据未渲染

标签 javascript reactjs

我在渲染 Prop 数据时遇到问题
在这里,我尝试将 Prop 传递给具有示例数据集中的映射数据的组件

const weatherComponents = weatherData.items.map(weather => {
  return(
    <div key={weather.forecasts.area}>
      <WeatherForecast 
        name={weather.forecasts.area}
        condition={weather.forecasts.forecast}>
      </WeatherForecast>
    </div>
    )})
return(
    {weatherComponents} )

这是组件

function WeatherForecast(props) {
return(
    <div>
        <p>Name: {props.name}</p>
        <p>Condition: {props.condition}</p>
    </div>
)}

这是示例数据集

   {
 "area_metadata": [
   {
     "name": "Yishun",
     "label_location": {
       "latitude": 1.418,
       "longitude": 103.839
     }
   }
 ],"items": [
   {
     "forecasts": [
     {
       "area": "Yishun"
       "forecast" : "cloudy"
     }
   ]}
 ]}

在我的浏览器中,它显示警告:列表中的每个子项都应该有一个唯一的“key”属性。并且数据未呈现,仅显示“名称:”,没有区域名称从数据集中。我是否以错误的方式映射数据?帮助TT

最佳答案

你有 2 个选择……好吧,3 个。

  1. 您需要在“area_metadata”和“items”中有一个数组:

1.1。快速解决方案:

const weatherComponents = weatherData.items.map(weather => {
  return(
    <div key={weather.forecasts[0].area}>
      <WeatherForecast 
        name={weather.forecasts[0].area}
        condition={weather.forecasts[0].forecast}>
      </WeatherForecast>
    </div>
  )
})

return({weatherComponents})

1.2 正确的解决方案:

const weatherComponents = weatherData.items.map(weather => {

  return weather.forecasts.map( casts => (
    <div key={casts.area}>
      <WeatherForecast 
        name={casts.area}
        condition={casts.forecast}>
      </WeatherForecast>
    </div>
  ))
})

return({weatherComponents})

2。您不需要数组:

{
  "area_metadata": [
    {
      "name": "Yishun",
      "label_location": {
        "latitude": 1.418,
        "longitude": 103.839
      }
    }
  ],
  "items": [
    {
      "forecasts": {
        "area": "Yishun"
        "forecast" : "cloudy"
      }
    }
  ]
}

关于javascript - Prop 数据未渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56955874/

相关文章:

reactjs - 如何使用带有 React.js 的预签名 Url 将文件上传到 S3

javascript - Angular js 1,路由,locationProvider,404错误

javascript - 使 div 与 img 纯 JavaScript 大小相同

javascript - 使用循环在每个 json 子对象上获取本地存储中的 Json 数据

javascript - 在External js和React js/Redux之间传递数据

reactjs - react typescript : Type 'null' is not assignable to type 'CanvasRenderingContext2D'

javascript - 加载时文本框默认文本,焦点时文本框为空

javascript - 文本/纯文件下载的 Angular http$ 响应失败,出现 SyntaxError : Unexpected number in JSON

javascript - 我们如何更新 firebase 云存储中的现有图像?

javascript - 重构以使函数可通过 setState 重用