无法在React和API中读取未定义的属性“地图”
2019-11-02
92
我对 React 还很陌生,我正尝试从 food2fork api 中引入数据,但出现了错误
TypeError: Cannot read property 'map' of undefined
如果我 撤消此代码 ,则错误为零。此代码是 主要 发生错误的地方
{recipes.map (recipe => {
return <Recipe key={recipe.recipe_id} recipe={recipe}
/>;
})}
RecipeList.js 的完整页面
import React, { Component } from 'react';
import Recipe from './Recipe';
import RecipeSearch from './RecipeSearch';
export default class RecipeList extends Component {
render() {
const { recipes } = this.props;
return (
<React.Fragment>
<RecipeSearch />
<h1>Recipe List</h1>
<div className="container my-5">
{/* title */}
<div className="row">
<div className="col-10 mx-auto col-md-6 text-center text-uppercase mb-3">
<h1 className="text-slanted">Recipe List</h1>
</div>
</div>
{/* end title */}
<div className="row">
{recipes.map (recipe => {
return <Recipe key={recipe.recipe_id} recipe={recipe}
/>;
})}
</div>
</div>
<Recipe />
</React.Fragment>
);
}
}
在 App.js 中:
render(){
console.log(this.state.recipes);
return (
<React.Fragment>
<RecipeList />
<RecipeDetails />
</React.Fragment>
);
}
2个回答
我认为您将食谱数据保存在 App.js 中的
this.state.recipes
中
您需要将其作为道具传递给
<RecipeList
组件以在那里将其用作道具。
因此,在您的 App.js 中只需执行以下操作
render(){
console.log(this.state.recipes);
return (
<React.Fragment>
<RecipeList recipes={this.state.recipes} />
<RecipeDetails />
</React.Fragment>
);
}
Atin Singh
2019-11-02
首先,您没有将任何道具传递给食谱家。
在app.js
687888232
中更改此信息 更改:
482033970
to:
460140153
Nicolas Hevia
2019-11-02