Bingo

On Sat, May 21, 2016 at 7:40 PM, hulufei <f.calab...@gmail.com> wrote:

> I already figured it out, thanks
>
> Just map children's msg to parent's msg on children's html events, so the
> children's view return same Msg type as parent's, that's how to use
> `TabMsg` inside `Tab.view`
>
> On Sun, May 22, 2016 at 1:34 AM, Nick H <falling.maso...@gmail.com> wrote:
>
>> Can you show us your Tab.view code?
>>
>> Changing the type signature in the manner I suggested will require
>> changes to the function. It will be easier to explain if I can see what you
>> have right now.
>>
>> On Wed, May 18, 2016 at 7:12 PM, Luis Fei <f.calab...@gmail.com> wrote:
>>
>>> Thanks,Nick,sorry for the later reply
>>>
>>> I tried to apply the changes to Tab.view, still have the problem, this
>>> time the compiler complained inferring definition has this type: `(Msg ->
>>> a) -> Model -> List (Html Msg) -> Html Msg`, and I'm confused how to use
>>> this new added TabMsg parameter inside Tab.view
>>>
>>> On Wednesday, May 18, 2016 at 12:36:35 AM UTC+8, Nick H wrote:
>>>>
>>>> Right now, I am guessing your Tab.view has this signature:
>>>>
>>>> Tab.view : Tab.Model -> List (Html Tab.Msg) -> Html Tab.Msg
>>>>
>>>> Try changing it to follow this signature:
>>>>
>>>> Tab.view : (Tab.Msg -> a) -> Tab.Model -> List (Html a) -> Html a
>>>>
>>>> And your Main.view will then look like this:
>>>>
>>>> view model =
>>>>   Tab.view TabMsg model.tabModel
>>>>     [ App.map LogsMsg <| LogList.view model.logModel ]
>>>>
>>>>
>>>> The other solution that comes to mind would be to nest the
>>>> LogList.Model within Tab.Model and nest LogList.Msg within Tab.Msg, but I
>>>> am guessing you want the Tab component to be more generic than that.
>>>>
>>>> On Tue, May 17, 2016 at 3:26 AM, Luis Fei <f.cal...@gmail.com> wrote:
>>>>
>>>>> Hi, I was trying to upgrade from 0.16 to 0.17, and meet this problem
>>>>>
>>>>> I have  a Main.view which contains a Tab.view, and Tab.view contains a
>>>>> LogList.view, so i change the Signal.forwardTo part like this:
>>>>>
>>>>> -- This is Main module
>>>>>
>>>>> type alias Model =
>>>>>     { tabModel : Tab.Model
>>>>>     , logsModel : LogList.Model
>>>>>     }
>>>>>
>>>>> type Msg
>>>>>     = TabMsg Tab.Msg
>>>>>     | LogMsg LogList.Msg
>>>>>
>>>>> view : Model -> Html Msg
>>>>> view model =
>>>>>     App.map TabMsg
>>>>>         <| Tab.view model.tabModel
>>>>>             [ App.map LogsMsg <| LogList.view model.logModel ]
>>>>>
>>>>>
>>>>> And the compiler complained as the Tab.view is expecting `List (Html
>>>>> Tab.Msg)` but it is `List (Html Msg)`, I understand why the compiler
>>>>> complain like this, the problem is I don't know how to do these kind of
>>>>>  multi-level nesting.
>>>>>
>>>>> thanks.
>>>>>
>>>>> BTW, I read
>>>>> https://github.com/evancz/elm-architecture-tutorial/blob/master/nesting/2-counter-list.elm,
>>>>> but it's single child to parent communication.
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Elm Discuss" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to elm-discuss...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Elm Discuss" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to elm-discuss+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "Elm Discuss" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/elm-discuss/yzaZXYKXDvI/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> elm-discuss+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Elm Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elm-discuss+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to