主模組(Main modules)

這個主層級需要鉤上先前所建立的 Players 模組。

建立連結:

主訊息    --->    玩家訊息
主模型    --->    玩家模型
主更新    --->    玩家更新

主訊息

修改 src/Messages.elm 來包含玩家訊息:

module Messages exposing (..)

import Players.Messages


type Msg
    = PlayersMsg Players.Messages.Msg

主模型

修改 src/Models.elm 來包含玩家:

module Models exposing (..)

import Players.Models exposing (Player)


type alias Model =
    { players : List Player
    }


initialModel : Model
initialModel =
    { players = [ Player "1" "Sam" 1 ]
    }

這裡暫時寫死玩家。

主更新

更改 src/Update.elm 成:

module Update exposing (..)

import Messages exposing (Msg(..))
import Models exposing (Model)
import Players.Update


update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
    case msg of
        PlayersMsg subMsg ->
            let
                ( updatedPlayers, cmd ) =
                    Players.Update.update subMsg model.players
            in
                ( { model | players = updatedPlayers }, Cmd.map PlayersMsg cmd )

這裡遵循 Elm 架構:

  • 所有 PlayersMsg 發送到 Players.Update
  • 使用樣式對應取出結果給 Players.Update
  • 傳回模型,包含更新後玩家列表及需要執行的命令。

results matching ""

    No results matching ""