2011-07-01 15 views
6

Reaktif-muz kullanırken ui öğelerinin içeriğini nasıl elde edersiniz? Olay0, denetimin türü yerine birim türüne sahip Event() türünde bir olay döndürür. event1, Event w (a -> IO()) türünde bir olayı alır, ancak komut Event w (IO()) türüdür. mapAccumE ve mapAccumB, saf işlevleri parametre olarak alır, bu nedenle get text foo bunlarla kullanılamaz.Reaktif banana-wx ile UI girişi

cevap

4

Temel olarak, veri yerine işlevlerle çalışmak istiyorsunuz. "Bir kutuda geçerli metne sahip olan bir davranışı nasıl oluşturabilirim" diye düşünmüyorsanız, yapmazsınız. Bunun yerine, geçerli metni bir parametre olarak alan ve gerektiğinde ileten işlevler yazarsınız. Bir düğmeye basıldığında bir metin kutusunun içeriğini yazdırmak istediğinizi varsayalım. O zaman böyle bir şey yapacağını: Bir Davranış içine girdi almak gerekiyorsa

eButton :: NetworkDescription (Event()) 
eButton = event0 button command 

network = do 
    pressButton <- eButton 
    reactimate $ (\() -> get text foo >>= print) <$> pressButton 

, sen benzer tip Behavior (String -> a) (ya da her türlü tür gerekir) olan bir işlev kullanabilirsiniz ve sonra sadece az dizeyi geçmesi reactimate çağrı noktası. Ben bir çok önemli özelliği ihmal bugün keşfetti

4

(konuşma reactive-banana yazarı. Geç cevap için üzgünüm, soruların olasılığı :-). Aklımı bile geçmedim Burada isteniyor) kütüphane: bir UI elemanının içeriğini Behavior olarak almak. Utanç verici! : -D

John, geçerli geçici çözümü açıklar, ancak reaktif muzun bir sonraki sürümü, eksik özelliği içerir.

DÜZENLEME: Şimdi bir fonksiyonu şeklinde işlevselliği içeren reaktif muz version 0.4 yayımlandı

fromPoll :: IO a -> NetworkDescription (Behavior a)