ReasonReact Context API Example
module StringContext = | |
Context.MakePair({ | |
type t = string; | |
let defaultValue = "Awesome"; | |
}); | |
let component = ReasonReact.statelessComponent("Tree"); | |
let make = _children => { | |
...component, | |
render: _self => | |
<StringContext.Provider value="Hello folks"> | |
<div> | |
<StringContext.Consumer> | |
...{text => str(text)} | |
</StringContext.Consumer> | |
</div> | |
</StringContext.Provider>, | |
}; |
type pair; | |
[@bs.get] external provider: pair => ReasonReact.reactClass = "Provider"; | |
[@bs.get] external consumer: pair => ReasonReact.reactClass = "Consumer"; | |
[@bs.module "React"] external createContext: 'a => pair = ""; | |
module MakePair = (Config: { | |
type t; | |
let defaultValue: t; | |
}) => { | |
let _pair = createContext(Config.defaultValue); | |
module Provider = { | |
let make = (~value: Config.t, children) => | |
ReasonReact.wrapJsForReason( | |
~reactClass=provider(_pair), | |
~props={"value": value}, | |
children, | |
); | |
}; | |
module Consumer = { | |
let make = (children: (Config.t) => ReasonReact.reactElement) => | |
ReasonReact.wrapJsForReason( | |
~reactClass=consumer(_pair), | |
~props=Js.Obj.empty(), | |
children | |
) | |
}; | |
}; |
This comment has been minimized.
This comment has been minimized.
Here's the warning I get:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
I get this error: