--- title: Textarea with word limit tags: components,input,state,callback,effect,event expertise: intermediate cover: blog_images/painters-desk.jpg firstSeen: 2019-02-20T18:22:22+02:00 lastUpdated: 2021-10-13T19:29:39+02:00 --- Renders a textarea component with a word limit. - Use the `useState()` hook to create a state variable, containing `content` and `wordCount`. Use the `value` prop and `0` as the initial values respectively. - Use the `useCallback()` hooks to create a memoized function, `setFormattedContent`, that uses `String.prototype.split()` to turn the input into an array of words. - Check if the result of applying `Array.prototype.filter()` combined with `Boolean` has a `length` longer than `limit`. If it does, trim the input. Otherwise return the raw input, updating state accordingly in both cases. - Use the `useEffect()` hook to call the `setFormattedContent` method on the value of the `content` state variable during the initial render. - Bind the `onChange` event of the `