Last active
December 13, 2021 17:32
-
-
Save jordwalke/67819c91df1552009b22 to your computer and use it in GitHub Desktop.
React OCaml API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open ReactDOM | |
module MyComponent = struct | |
(* Component Properties *) | |
type props = {count: int} | |
(* Hey, state can be any type! *) | |
type state = string | |
(* Initializer *) | |
let getInitialState props = "neverBeenClicked" | |
(* Signal handlers - these simply return the next state. *) | |
let componentWillReceiveProps props (prevProps, prevState) = prevState | |
let handleClick {props; state; updater} evt = "hasBeenClicked" | |
(* Render: props and state as arguments, just like we've always wanted *) | |
let render {props; state; updater} = [ | |
Div.make | |
~styleString: "Omit to rely on defaults #thanksOCaml - no really, thanks OCaml" | |
~className: ("P:" ^ props.prefix ^ " S:" ^ state) | |
~onClick: (updater handleClick) | |
~children: [] | |
] | |
end | |
(* CreateComponent as a Functor. OCaml's (SML's) module system proves to be very powerful *) | |
module MyComponentClass = React.CreateComponent (MyComponent) |
Sorry for the late reply - I suspect @IwanKaramazow knows what updater is for now - now that he actually implemented it.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What's the purpose of
updater
, I mean what does it do ?