React's Ref
All styled components expose a prop innerRef
that will be forwarded to its internal element. This is useful for accessing the underlying DOM node.
module Input = %styled.input(`
border: 1px solid #cccccc;
border-radius: 4px;
padding: 8px;
font-size: 16px;
outline: none;
&:focus {
border-color: #aaaaaa;
}
`)
@react.component
let make = () => {
let input = React.useRef(Js.Nullable.null)
let focusInput = () =>
input.current
->Js.Nullable.toOption
->Belt.Option.forEach(input => input->focus)
let onClick = _ => focusInput()
<div>
<Input innerRef={ReactDOM.Ref.domRef(input)} />
<button onClick> {React.string("Click to focus")} </button>
</div>
}
module Input = %styled.input(`
border: 1px solid #cccccc;
border-radius: 4px;
padding: 8px;
font-size: 16px;
outline: none;
&:focus {
border-color: #aaaaaa;
}
`)
@react.component
let make = () => {
let input = React.useRef(Js.Nullable.null)
let focusInput = () =>
input.current
->Js.Nullable.toOption
->Belt.Option.forEach(input => input->focus)
let onClick = _ => focusInput()
<div>
<Input innerRef={ReactDOM.Ref.domRef(input)} />
<button onClick> {React.string("Click to focus")} </button>
</div>
}
All information related with React's Ref is explained in rescript's docs.