2017-10-19 11 views
1

未定義またはnull参照の「タグ」プロパティを取得できません。私は、HTTPポストを実行した後に次のエラーが表示されます再帰関連の例外:

プロパティを取得することができません「タグ」未定義またはnull参照の

sourceDecoder : Decoder JsonSource 
sourceDecoder = 
    Decode.map5 JsonSource 
     ... 
     (field "Links" providerLinksDecoder) 

デコーダ依存:

Iは、次のデコーダ機能を実行する際にエラーが発生したと信じて

providerLinksDecoder : Decoder JsonProviderLinks 
providerLinksDecoder = 
    Decode.map JsonLinkFields 
     (field "Links" <| Decode.list (Decode.lazy (\_ -> linkDecoder))) 
     |> Decode.map JsonProviderLinks 

linkDecoder : Decoder JsonLink 
linkDecoder = 
    Decode.map6 JsonLink 
     (field "Profile" profileDecoder) 
     ... 

profileDecoder : Decoder JsonProfile 
profileDecoder = 
    Decode.map7 JsonProfile 
     ... 
     (field "Sources" <| Decode.list (Decode.lazy (\_ -> sourceDecoder))) 

付録:ソースコードがhere上で見つけることができます

type JsonProviderLinks 
    = JsonProviderLinks JsonLinkFields 


type alias JsonLinkFields = 
    { links : List JsonLink 
    } 

注:このエラーを調査しようとしましたが、これはpageとなりました。 その結果、私はDecode.lazy関数を使用しようとしました。しかし、私の試みは失敗しました。

+0

あなたは含めることができています(http://sscce.org/) –

+0

私は必需品を表示するためにポストを更新しました。 –

答えて

1

例には他のデコーダに依存する多くのデコーダがあります。一部のユーザーをDecode.lazyに変更しましたが、すべてではありません。受信したエラーは、コントロールの再帰から復帰したときに発生します。

lazyを使用するためのリストは必要ありません。デバッグに向けた最初のステップとして試してみてください。他のデコーダを参照するデコーダはDecode.lazyです。 [?短い、自己完結型、コンパイル例]:たとえば

sourceDecoder : Decoder JsonSource 
sourceDecoder = 
    Decode.map5 JsonSource 
     ... 
     (field "Links" (Decode.lazy (\_ -> providerLinksDecoder))) 
+0

https://github.com/elm-lang/elm-compiler/issues/873およびhttps://github.com/elm-lang/elm-compiler/blob/master/hints/bad-recursion.mdも参照してください。 –