【问题标题】:Spotify Apps 1.0 setItem not workingSpotify Apps 1.0 setItem 不工作
【发布时间】:2023-03-11 12:31:01
【问题描述】:

我有一些如下所示的 Spotify 应用代码:

require(['$api/models', '$views/list#List', '$api/search#Search'], function(models, List, Search) {

var testList = function(){
    var album = models.Album.fromURI('spotify:album:6iBEe3qEjdIRz38swH7jT0');
    console.log(album);
    var list = List.forAlbum(album);
    document.body.appendChild(list.node);
    list.init();
    var al2 = models.Album.fromURI('spotify:album:5fTBlCZFI4zYOdJn1NrLgt');
    list.setItem(al2);
};

testList();

});

当我在我的 Spotify 应用程序中运行它时,我收到以下错误:

Uncaught TypeError: Cannot read property 'null' of undefined core.js:4

如果有帮助,这是 List.setItem() 的源代码:

function (a,b){if(!this.destroyed){var c=
this,d=a instanceof f.Collection;b&&(this.options.context=b);!this.lists&&d?(this.model.setCollection(a),this.dispatchEvent({type:"set-item",item:a}),this._resetContextGroup(),this.refresh()):(this.lists&&this._callForEachList("destroy"),this.destroy(),this.addEventListener("list-init",function g(){c.removeEventListener("list-init",g);c.dispatchEvent({type:"set-item",item:a});this._resetContextGroup();c._oldParentNode&&c._oldParentNode.appendChild(c.node);this.init()}),d?this._init(a):this._loadItem(a),
this.destroyed=!1)}} 

我正在使用 API 版本 1.0.0 和视图 1.35.0。 List 类的文档在这里:https://developer.spotify.com/docs/apps/views/1.0/list-list.html 任何帮助表示赞赏!

【问题讨论】:

  • 我遇到了同样的问题。就我而言,错误是在list.init() 上引发的。

标签: javascript requirejs spotify


【解决方案1】:

列表在调度“已初始化”事件之前并未完全初始化。在初始化期间,属性被设置为列表的 DOM 元素,稍后由诸如 setItem 之类的函数读取。该过程依赖于几个异步调用,这就是为什么在运行 setItem 时无法保证属性已设置的原因。

如果您想知道列表何时完全加载,您可以订阅列表的“初始化”事件。

list.addEventListener("initialized", function(e) { 
    console.log("List is initialized");
});

(当然你也可以通过在 setTimeout 中运行 setItem 来尝试这个,延迟足够大。)

我认为 setItem 在您运行列表的 init 函数后的短时间内不会被使用,这就是为什么在大多数用例中这不是问题的原因。我相信 setItem 通常是由用户的某些操作触发的。参考网站上的例子有点不幸。

更新:此 API 已于 2014 年终止使用,不再使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多