DocsPlaygroundBlogCommunityPackages
  • Playground
  • Blog
  • Community
  • Packages
  • X
  • Bluesky
  • GitHub
  • Forum
Language ManualAPISyntax LookupReact
v11v9.1 - v10.1v8.2 - v9.0v6.0 - v8.1
Overview
  • Introduction
  • Installation
Main Concepts
  • Elements & JSX
  • Rendering Elements
  • Components and Props
  • Arrays and Keys
  • Events
  • Refs and the DOM
  • Context
  • memo
  • Styling
  • Router
  • Lazy Components
  • Import / Export ReactJS
Hooks & State Management
  • Hooks & State Management Overview
  • useEffect Hook
  • useState Hook
  • useReducer Hook
  • useContext Hook
  • useRef Hook
  • Build A Custom Hook
Guides
  • Beyond JSX
  • Forwarding Refs
  • Extensions of props
Extra
  • LLMs
Docs / rescript-react /
Edit

Events

React lets you add event handlers to your JSX. Event handlers are your own functions that will be triggered in response to interactions like clicking, hovering, focusing form inputs, and so on.

Capture the input value onChange

Depending on the event handler, the callback function will have a different type. Due to the dynamic nature of JavaScript, we cannot anticipate the target type on the event. So, we need a leap of faith to grab the input value as string.

RES
module App = { @react.component let make = () => { let (value, setValue) = React.useState(_ => "") <form> <input type_="text" defaultValue={value} onChange={(ev: JsxEvent.Form.t) => { let target = JsxEvent.Form.target(ev) let value: string = target["value"] setValue(_prevValue => value) }} /> <p style={{color:"red"}}>{React.string(value)}</p> </form> } }

© 2025 The ReScript Project

About
  • Community
  • ReScript Association
Find us on