F # Fabulous Xamarin: обновить вид из кода без ввода пользователя - PullRequest
0 голосов
/ 16 сентября 2018

Я новичок в Эльмише. Ксамарин и сам Ксамарин.Я пытаюсь создать приложение, используя этот пример калькулятора .Основное отличие состоит в том, что в этом примере пользовательский интерфейс обновляется при вводе пользователем, а функция update является чистой и просто оценивает следующее состояние модели:

let update msg model =
    match msg with
    | Clear -> Initial
    | Digit digit ->
        match model with
        | Initial | Error | Result _ -> Operand (double digit)
        | Operand op -> Operand (double (string op + string digit))
        | OperandOperator (operand, operator) -> OperandOperatorOperand (operand, operator, double digit)
        | OperandOperatorOperand (op1, operator, op2) -> OperandOperatorOperand (op1, operator, double (string op2 + string digit))
    | Operator operator ->
        match model with
        | Initial | Error -> model
        | Result operand // previously calculated result is now the first operand
        | Operand operand | OperandOperator (operand, _) -> OperandOperator(operand, operator) 
        | OperandOperatorOperand _ -> calculate model msg
        | Equals -> calculate model msg

Мне нужен другой сценарий: ввод пользователя hasnне влияет непосредственно на пользовательский интерфейс , вместо этого я сохраняю сообщения пользователя и оцениваю следующее состояние по расписанию , поэтому в ядре моего приложения я передаю updateUI: gameState -> unit func:

let gameAgentFn (mailboxNetwork: MailboxNetwork) updateUi gameState cmd =
    let timerAgent = timerAgent mailboxNetwork
    match gameState.gameFrame with
    | Frame field ->
        let gameState = Game.updateGameState gameState cmd
        timerAgent.Post Next
        updateUi gameState
        gameState

Проблема заключается вЯ не могу понять, какую функцию передать и как построить взаимодействие с этим проектом, поскольку, насколько я вижу, он ожидает, что я передам чистую функцию для оценки следующего состояния, а остальное делается под ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...