Events 如何在Purescript中实现自动递增计数器之类的功能

Events 如何在Purescript中实现自动递增计数器之类的功能,events,purescript,halogen,purescript-halogen,Events,Purescript,Halogen,Purescript Halogen,给定一个非常简单的增量组件,如React: class Increment extends React.Component { constructor(props){ super(props) this.state = { value: props.value } } componentDidMount() { setInterval(() => { this.setState(({ value }) => ({

给定一个非常简单的增量组件,如React:

class Increment extends React.Component {
  constructor(props){
    super(props)
    this.state = {
      value: props.value
    }
  }

  componentDidMount() {
    setInterval(() => {
      this.setState(({ value }) => ({ value: value + 1 }))
    }, 1000);
  }

  render(){
    return (
      <p>{ this.state.value }</p>
    );
  }
}


ReactDOM.render(<Increment value={0} />, document.getElementById('root'))
类增量扩展了React.Component{
建造师(道具){
超级(道具)
此.state={
价值:道具价值
}
}
componentDidMount(){
设置间隔(()=>{
this.setState(({value})=>({value:value+1}))
}, 1000);
}
render(){
返回(
{this.state.value}

); } } ReactDOM.render(,document.getElementById('root'))
这如何转化为Purescript的卤素?在网上浏览了各种各样的东西,我还没有找到任何可以制作成我自己的原型的例子。我知道
Effect.Time
会暴露
setInterval
,但我如何使用它来触发一些东西,让我更新状态(在受控操作中,通过
handleAction

我正在尝试将应用程序从Elm移到卤素,在该应用程序中,它依赖于
订阅
功能来更新与直接用户输入无关的应用程序状态。如果卤素也有类似的功能(我已经看到了订阅,虽然这似乎与父/子组件之间的通信有关,但我可能误解了这一点…),最好指向它。

这里是一个用卤素编写的示例,代码位于

要使其自动递增,可以在初始化处理程序中添加一个自循环函数

loop = 
  H.liftAff $ Aff.delay $ Aff.Milliseconds 1000.0
  H.modify_ \s -> s { value = s.value + 1 }
  loop

handleAction Initialize = loop
查看官方示例以了解如何使用
初始化