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

在Angular=>error:TypeError:无法读取未定义的属性“0”时显示数据列表时出现此错误

郗缪文
2023-03-14

我是Angular的新手,我有一个错误需要修复。这是我在尝试显示来自JSONPLACEHOLDER的数据列表时遇到的错误。我不知道代码出了什么问题。我能请你帮忙吗?谢谢你。

错误类型错误:无法读取RecipeService.Push./src/app/Recipes/Recipe.Service.ts.RecipeService.getRecipe(Recipe.Service.ts:25)在SafeSubScriper._Next(Recipe-Detail.Component.ts:26)在SafeSubScriper.Push../Node_Modules/RxJS/_ESM5/Internal/Subscriber.js.SafeSubScriper.__TryRunsub(Subscriber.js:196)在SafeSubScriper.Push./Node_Modules/RxJS/_ESM5/Internal/Subscriber.js.SafeSubscriper.Next(Subscriber.js:134)处未定义的属性“0”在subscriber.push./node_modules/rxjs/_esm5/internal/subscriber.js:77)在subscriber.push./node_modules/rxjs/_esm5/internal/subscriber.js.subscriber.next(subscriber.js:54)在BehaviorSubject.push./node_modules/rxjs/_esm5/internal/BehaviorSubject.js.BehaviorSubject._subscribe(BehaviorSubject.js:22)在)在behaviorsubject.push../node_modules/rxjs/_esm5/internal/subject.js.subject._trysubscribe(Subject.js:89)在BehaviorSubject.push../node_modules/rxjs/_esm5/internal/observable.js.observable.subscribe(Observable.js:29)

配方-Detail.Component.ts

  ngOnInit() {
    this.route.params
      .subscribe(
        (params: Params) => {
          this.id = +params['id'];
          this.recipe = this.recipeService.getRecipe(this.id);
        }
      );
  }

Recipe.Service.TS

@Injectable()
export class RecipeService {
  recipesChanged = new Subject<Recipe[]>();

  private url = "https://jsonplaceholder.typicode.com/users/";

  private recipes: Recipe[];

  constructor(private slService: ShoppingListService, private http: Http) {}

  getRecipes() {
    return this.http.get(this.url).pipe(map(res => res.json()));
  }

  getRecipe(index: number) {
    return this.recipes[index];
  }

配方-detail.component.html

<div class="row">
  <div class="col-xs-12" *ngFor="let recipe of recipes">
    <h1 class="list-group-item-heading">{{ recipe.id }}</h1>
    <h4 class="list-group-item-heading">{{ recipe.name }}</h4>
    <h4 class="list-group-item-heading">{{ recipe.username }}</h4>
    <h4 class="list-group-item-heading">{{ recipe.email }}</h4>
    <h4 class="list-group-item-heading">{{ recipe.phone }}</h4>
  </div>
</div>

共有1个答案

宿楚青
2023-03-14

可能是菜谱为空/未定义。因此,当您调用getRecipe(0)时,会出现这个错误。尝试将您的方法更改为如下所示:

getRecipe(index: number) {
    if (!!this.recipes && this.recipes.length > index) {
       return this.recipes[index];
    } else {
       return 0; //Whatever
    }
}
 类似资料:
  • StackTrace: [10:49:03]ionic-app-script任务:“build”[10:49:03]TypeError:无法读取未定义类型的属性“Get Start”ERROR:无法读取未定义类型的属性“Get Start”在object.replaceNode(C:\users\administrator\desktop\clienture\node_modules@ionic\

  • 当我在react中工作时。当我想要侧边页时,我会显示“TypeError:不能读取未定义的属性(读取'pathname')”!

  • 问题内容: 我知道这是一个很普遍的问题,我在Stack Overflow和其他网站(包括datatables网站)上阅读了所有类似的问题。 为了澄清,我正在使用 PHP Codeigniter 物质学 我还确保我正确接收了JSON数组: 我的HTML表格如下所示: 这是我的功能: 我得到的错误是 未捕获的TypeError:无法读取未定义的属性’length’ 问题答案: 原因 此错误通常意味着j

  • 我试图只显示一个覆盖,如果我的搜索输入包含任何文本。 这是我的模板,其中我的输入字段是: : 当我在控制台中进行检查时,会更新我在输入字段中写入的任何文本。 然后,我尝试将此变量传递给另一个组件,该组件保存我的overlay div: Overlay.vue: 然而,这给我下面的错误: [Vue warn]:呈现错误:“TypeError:无法读取未定义的属性'length'” 我到底做错了什么?

  • 这是app.component.ts 我目前正在一个ANGULAR项目中使用“ChartJs”库来生成统计图,但当在控制台中运行该项目时,我得到以下错误:错误类型错误:无法读取未定义的属性“map”,有什么解决方案? core.js:15714错误类型错误:无法读取SafeSubscriber._next(app.component.ts:22)在SafeSubscriber.push../Nod

  • 这是我的功能。显示解析错误(data.ops[0])