无法读取未定义的 Typescript / Angular 6 的属性“推送”

伊桑卡·塔拉加拉

我正在使用 socket.io 实现小型聊天应用程序,很高兴它工作正常。但我担心的是,当我收到新聊天时,我需要将其分配给字符串数组以在列表视图中显示。

我只是将数组定义为“消息:字符串 [] = [];” 并在页面加载时推送示例字符串,它工作正常。但是当我从套接字this.socket.on('newmessage', function (data)方法将触发并可以读取新消息时,所有的东西都正常工作。

但是当我将新字符串推入我的“消息:字符串[] = [];”时 大批。我收到“无法读取未定义的属性“推送”错误。

import { Component, OnInit} from '@angular/core';
import * as io from 'socket.io-client';

@Component({
  selector: 'app-chatbox',
  templateUrl: './chatbox.component.html',
  styleUrls: ['./chatbox.component.css'],

})

export class ChatboxComponent implements OnInit {
  socket;
  messages: string[] = [];
  
  constructor() { this.socket = io.connect('http://localhost:8000'); }

  ngOnInit() {
    this.initializeChatServer();
  }

  initializeChatServer() {
  
    this.messages.push( 'test 55');//This line works

    this.socket.on('newmessage', function (data) {
      console.log('message -> ' + data.nick + '>' + data.msg);     
      this.messages.push(data.msg); //Cannot read property 'push' of undefined
    }); 
    
  }

}

伊桑卡·塔拉加拉

我认为这是因为同步调用。我认为这不是标准方式,但在我这样更改后它起作用了..

 initializeChatServer() {

    this.messages.push( 'test 55');
    var self = this;//assgin this to var variable
    this.socket.on('newmessage', data => {
      console.log('message -> ' + data.nick + '>' + data.msg);     
      self.messages.push(data.msg); 
    });

  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法读取未定义的 Angular/Typescript 的属性“推送”

来自分类Dev

无法读取未定义的Angular / TypeScript属性'forEach'

来自分类Dev

Angular 6:TypeError:无法读取未定义的属性“值”

来自分类Dev

无法使用 Angular 6 读取未定义的属性“冠军”

来自分类Dev

Angular 6:无法读取未定义的属性

来自分类Dev

Angular - TypeError:无法读取未定义的属性“推送”

来自分类Dev

(Angular2 和 Typescript)Angular 的 DatePicker 无法读取未定义的属性“切换”

来自分类Dev

Angular2-TypeError:无法读取(Typescript)中未定义的属性'Id'

来自分类Dev

Angular 1.4 + ngNewRouter + ES6:无法读取未定义的属性'$ routeConfig'

来自分类Dev

使用ngFormModel(ES6)时angular2无法读取未定义的属性'validator'

来自分类Dev

Angular 6 中的“错误类型错误:无法读取未定义的属性‘名称’”

来自分类Dev

Angular 6 错误类型错误:无法读取未定义的属性“导航”

来自分类Dev

Angular 6+ TypeError:无法读取未定义的属性“firstName”

来自分类Dev

类型错误:在单元测试 Angular 6 时无法读取未定义的属性“查询”

来自分类Dev

Angular 6 表单验证 - 无法读取未定义的属性“名称”

来自分类Dev

无法读取 angular6 反应形式中未定义的属性“触摸”

来自分类Dev

Angular无法读取未定义的属性

来自分类Dev

vscode Typescript无法读取未定义的属性'compilerOptions'

来自分类Dev

TypeScript:无法读取[null]中未定义的属性“ push”

来自分类Dev

Typescript,React:TypeError:无法读取未定义的属性“ push”

来自分类Dev

TypeScript:TypeError:无法读取未定义的属性“ push”

来自分类Dev

无法读取未定义的 Typescript 属性“getElementAtEvent”

来自分类Dev

无法读取未定义的属性“变量”(Typescript / HTML / Nativescript)

来自分类Dev

无法读取Angular Mobile中未定义的属性“ makeCurrent”

来自分类Dev

无法读取Angular JS中未定义的属性成功

来自分类Dev

Angular TypeError:无法读取未定义的属性“ then”

来自分类Dev

Angular无法读取未定义的属性“ push”

来自分类Dev

Angular-无法读取未定义的属性“ $ invalid”

来自分类Dev

(Angular http $):无法读取未定义的属性“ length”

Related 相关文章

  1. 1

    无法读取未定义的 Angular/Typescript 的属性“推送”

  2. 2

    无法读取未定义的Angular / TypeScript属性'forEach'

  3. 3

    Angular 6:TypeError:无法读取未定义的属性“值”

  4. 4

    无法使用 Angular 6 读取未定义的属性“冠军”

  5. 5

    Angular 6:无法读取未定义的属性

  6. 6

    Angular - TypeError:无法读取未定义的属性“推送”

  7. 7

    (Angular2 和 Typescript)Angular 的 DatePicker 无法读取未定义的属性“切换”

  8. 8

    Angular2-TypeError:无法读取(Typescript)中未定义的属性'Id'

  9. 9

    Angular 1.4 + ngNewRouter + ES6:无法读取未定义的属性'$ routeConfig'

  10. 10

    使用ngFormModel(ES6)时angular2无法读取未定义的属性'validator'

  11. 11

    Angular 6 中的“错误类型错误:无法读取未定义的属性‘名称’”

  12. 12

    Angular 6 错误类型错误:无法读取未定义的属性“导航”

  13. 13

    Angular 6+ TypeError:无法读取未定义的属性“firstName”

  14. 14

    类型错误:在单元测试 Angular 6 时无法读取未定义的属性“查询”

  15. 15

    Angular 6 表单验证 - 无法读取未定义的属性“名称”

  16. 16

    无法读取 angular6 反应形式中未定义的属性“触摸”

  17. 17

    Angular无法读取未定义的属性

  18. 18

    vscode Typescript无法读取未定义的属性'compilerOptions'

  19. 19

    TypeScript:无法读取[null]中未定义的属性“ push”

  20. 20

    Typescript,React:TypeError:无法读取未定义的属性“ push”

  21. 21

    TypeScript:TypeError:无法读取未定义的属性“ push”

  22. 22

    无法读取未定义的 Typescript 属性“getElementAtEvent”

  23. 23

    无法读取未定义的属性“变量”(Typescript / HTML / Nativescript)

  24. 24

    无法读取Angular Mobile中未定义的属性“ makeCurrent”

  25. 25

    无法读取Angular JS中未定义的属性成功

  26. 26

    Angular TypeError:无法读取未定义的属性“ then”

  27. 27

    Angular无法读取未定义的属性“ push”

  28. 28

    Angular-无法读取未定义的属性“ $ invalid”

  29. 29

    (Angular http $):无法读取未定义的属性“ length”

热门标签

归档