///|
fn subscriptions(model : Model, emit : Emit[Msg]) -> @sub.Sub {
if model.running {
@sub.every(1000, emit(Tick))
} else {
@sub.none
}
}///|
test "sub none" {
let _ : Sub = @sub.none
}///|
test "sub batch" {
let _ : Sub = @sub.batch([none, every(1000, @cmd.none)])
}///|
enum Msg {
Resized(ViewPort)
MouseMoved(Mouse)
}
///|
fn subscriptions(_model : Model, emit : Emit[Msg]) -> @sub.Sub {
@sub.batch([
@sub.on_resize(v => emit(Resized(v))),
@sub.on_mouse_move(m => emit(MouseMoved(m))),
])
}type Sub| 依赖 | RN 上 | 表现 |
|---|---|---|
| document.* | document 未定义 | 抛 ReferenceError |
| window.location / .history | window 存在(global.window = global)但没有这些属性 | 抛 TypeError |
| window.innerWidth / scrollY | 属性是 undefined | 不抛,静默给 0 ← 最难发现 |
Install
Download zipMoonBit UI for mobile: Android, iOS and Web from one rabbita (TEA) app, rendered by React Native
Dependencies