Why are forms so hard? • Much more back and forth communication with the user • The rate of state change is much higher • Validation • Asynchronous network communication
Unidirectional Data Flow • Data flows down from parent to child components • A parent never asks its child for its state • A child can only update state by calling a callback that its parent gave it.
Unidirectional Form Data Flow • User types into an input, which... • Dispatches an event, which... • Updates the value in some canonical data store, which... • Causes the input to be re-rendered with the new value.
Redux Form consists of: • A single reducer • A higher order form component • A Field component • A smattering of other useful components and Redux selectors