2017-11-09 43 views
0

私は使用しているお気に入りのWordpressプラグインからUncaught TypeError: Cannot read property 'posts' of undefinedを取得しています。私はプラグインの作成者に依頼してみましたが、応答はありませんでした。TypeError:未定義のプロパティ 'posts'を読み取ることができません

エラーは、この機能から来ている:

plugin.setButtonData = function() 
{ 
    plugin.data.postid = $(plugin.activeButton).attr('data-postid'); 
    plugin.data.siteid = $(plugin.activeButton).attr('data-siteid'); 
    plugin.data.favorite_count = $(plugin.activeButton).attr('data-favoritecount'); 
    plugin.data.site_index = plugin.utilities.siteIndex(plugin.data.siteid); 
    plugin.data.site_favorites = Favorites.userFavorites[plugin.data.site_index].posts; 
    if (plugin.data.favorite_count <= 0) plugin.data.favorite_count = 0; 
} 

と私はは、(第2のコードの最後の行まで)としてundefinedを返していることであることに問題を絞り込むました。ハードコードされた1に置き換えると、エラーは消えます。

は、元の問題がなければならない場合である、次の関数によって生成されます。

plugin.siteIndex = function(siteid) 
{ 
    for (var i = 0; i < Favorites.userFavorites.length; i++){ 
     if (Favorites.userFavorites[i].site_id !== parseInt(siteid)) continue; 
     return i; 
    } 
} 

残念ながら、私はここで間違って行くことができるか見当がつかない。私はWordpress Multisite環境(プラグインがサポートしています)で働いています。

完全なJSコードhereを見ることができます。

答えて

0

交換

plugin.data.site_favorites = Favorites.userFavorites[plugin.data.site_index].posts; 

plugin.data.site_favorites = plugin.data.site_index >= 0 ? 
    Favorites.userFavorites[plugin.data.site_index].posts : ''; 

にあなたのコードは、仕事になります。

plugin.siteIndex(siteid) return undefinedが問題になると思います。

関連する問題