开发者问题收集

TypeError:尝试访问未定义的“属性”

2017-07-07
173

我陷入了一个奇怪的错误:当尝试显示状态变量时,vuejs 警告我: 渲染函数中的错误:“TypeError:无法读取未定义的属性‘token’”

我的状态如下所示(在 vuejs 扩展中):

room:Object
    details:Object
        game_id:"1"
        id:914527404
        max_users:5
        messages:Array[0]
        token:"ef6464692f4cce187fe129d7"
        user:Array[1]
    messages:Array[0]
    users:Array[1]

尽管出现错误,但 HTML 仍可正确呈现:

<button id="copySharingLink" type="button" class="btn btn-primary waves-effect waves-light" v-bind:data-token="room.details.token">some text</button>

变成

<button id="copySharingLink" type="button" data-token="ef6464692f4cce187fe129d7" class="btn btn-primary waves-effect waves-light">some text</button>

我不知道如何消除这个错误,因为它正在运行。

1个回答

可能存在 roomroom.details 尚未设置的情况,这时可能会抛出错误。

尝试将代码从此...

v-bind:data-token="room.details.token"

...更改为此:

v-bind:data-token="room.hasOwnProperty('details') ? room.details.token : ''"
Nathan Wailes
2017-07-07