2017-08-16 196 views
3

我想弄清楚我在Magento電子商務擴展中收到的一個JS錯誤,我付了很多錢,但是他們的支持一直沒有解決這個問題。錯誤會導致頁面加載時的死命旋轉,永不消失。Uncaught TypeError:data.some不是一個函數

以下是我接收在顯影劑控制檯錯誤:

Uncaught TypeError: data.some is not a function 
at findFirst (select.js:67) 
at UiClass.normalizeData (select.js:193) 
at UiClass.normalizeData (wrapper.js:109) 
at UiClass.getInitialValue (abstract.js:200) 
at UiClass.setInitialValue (abstract.js:143) 
at UiClass._super (wrapper.js:106) 
at UiClass.setInitialValue (select.js:302) 
at UiClass.setInitialValue (wrapper.js:109) 
at UiClass.initialize (abstract.js:70) 
at UiClass.initialize (wrapper.js:109) 

這是在select.js data.some(函數(節點){錯誤被參考的67行的代碼部分:

/** 
* Recursively loops over data to find non-undefined, non-array value 
* 
* @param {Array} data 
* @return {*} - first non-undefined value in array 
*/ 
function findFirst(data) { 
    var value; 

    data.some(function (node) { 
     value = node.value; 

     if (Array.isArray(value)) { 
      value = findFirst(value); 
     } 

     return !_.isUndefined(value); 
    }); 

    return value; 
} 

我希望這只是某種錯字的錯誤,我可能能夠解決我自己的

謝謝?提前尋求幫助。

P.S.我是一個編碼新手。

+0

'some'是一個數組對象的方法。 「data」不是數組,或者你已經覆蓋原來的「some」方法。 – undefined

+0

幾乎肯定不是一個錯字。當'findFirst'函數傳遞一個沒有'some'方法的值時會發生這種情況。大概它期待一個陣列。 –

+0

檢查你正在調用函數findFirst的代碼,並確保你傳遞的參數數據值是數組。 – Ram

回答

1

在Magento 2.1.8中,有一個方法被刪除,可能會影響某些擴展 - 它影響我們所謂的getOptionArray()。

要修復它在我們的擴展:UI /的DataProvider /產品/表格/修改/ FixedSelectionType.php

'options' => FixedType::getOptionArray(), 

變爲:

'options' => FixedType::getOptionsArray(), 

和模型/屬性的文件夾中添加此方法,在我們的例子中完整路徑是:Model/Attribute/Sources/FixedType.php

以上公共函數getalloptions()方法加上:

public static function getOptionsArray() 
{ 
    $result = []; 

    foreach (self::getOptionArray() as $index => $value) { 
     $result[] = ['value' => $index, 'label' => $value]; 
    } 

    return $result; 
} 
相關問題