2017-08-16 9 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を呼び出すコードをチェックして、パラメータdataの値が配列であることを確認してください。 – Ram

答えて

1

Magento 2.1.8では、特定の拡張機能に影響する可能性のあるメソッドが削除されました。これはgetOptionArray()という名前の私たちに影響を与えました。私達の延長でそれを修正する

:UI /データプロバイダ/製品/フォーム/モディファイ/ FixedSelectionType.php

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

次のようになります。

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

とモデル/属性フォルダにこれを追加メソッドの場合、完全なパスは次のとおりです。モデル/属性/ソース/ FixedType.php

以上public function getalloptions()メソッドこれを追加します。

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

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

    return $result; 
} 
関連する問題