2017-02-24 5 views
0

私はRedux Formを使用していて、本当に奇妙な問題のように思えます。私は自分のローカルブランチで完璧に動作するアップデートを作成しましたが、コードシップ経由で特定のIPに構築された開発ブランチにプッシュすると、私の価値は異なるようです。リモート開発IPをテストするときだから、私はWEIRD ISSUE!サーバに基づく異なるコード構造で値が返されています

form.ProcessCheckoutForm.registeredFields.find in not a function 

だからすぐに、私はどちらかform.ProcessCheckoutForm.registeredFieldsがある時点で存在していないだけでなく考えて、このエラーを得たため、破壊されたり、私の値の構造がfudgedされます。私が気付いたいくつかのコンソールログの後には、私の2番目の前提がありました。

これは、私のローカルブランチ(まったく同じコード!)で私にとって奇妙なところです。log form.ProcessCheckoutForm.registeredFieldsをコンソールにすると、私は素晴らしいオブジェクトの配列を取得します。 enter image description here

しかし、私は私の開発サーバー上でまったく同じ値を慰めるとき、私は同じたわごとを得るが、オブジェクトではなく

たぶんイムはちょうど金曜日に私の心を失うことが、このされます私の目では意味をなさないが、私が考えることができるのは、コードシップがファンキーであるか、サーバー間の命名規則に問題があるということだけである。この問題の前に、コードシップはいつも私には良いことだったので、これらのアイデアはどちらも問題ではないはずです。新しいファイルや何かを追加することはできませんでした。

少し厄介そのけど、これはコードのセクションは、そのように見えるものですが(私は余分なものを取り除き、ちょうど例えばコンソールを左)は、このタスクを実行している:

let shippingValues = {}; 
if (form.ProcessCheckoutForm) { 
    const oldSuffix = '_shipping'; 
    const newSuffix = '_billing'; 
    Object.keys(form.ProcessCheckoutForm.values).forEach(field => { 
     const prefix = field.substring(0, field.length - oldSuffix.length); 
     if (form.ProcessCheckoutForm.fields) { 
      console.log('registeredFields', form.ProcessCheckoutForm.registeredFields); 
     } 
    }) 
} 

答えて

0

[OK]をので、全く分からない理由これは起こっていますが、私は「修正(これは将来のこのインスタンスを修正するための全体的な状態とも呼ばれます)」を試しました。私がしたのは、オブジェクトバージョンをObject.valuesメソッドを使ってオブジェクトの配列に変換することでした。

だから私の「修正」は少し次のようになります。

let registeredFields = form.ProcessCheckoutForm.registeredFields; 
if (form.ProcessCheckoutForm.registeredFields.constructor != Array) { 
    registeredFields = Object.values(form.ProcessCheckoutForm.registeredFields); 
} 

私が知っている総ので、誰でもどんな提案を持っているなら、私は

を教えてください
関連する問題