React Hook "useState" no se puede llamar dentro de una devolución de llamada. Los React Hooks deben llamarse en un componente de función React o en una función React Hook personalizada. (reaccionar-ganchos/reglas-de-ganchos)
import React, { useState } de "react";
export const WithCounter = (WrappedComponent) => { return (props) => { const [count, setCount] = useState(0); const increment = () => setCount((count) => count + 1); return <WrappedComponent count={count} increment={increment} {...props} />; }; }; const ClickCounter = (props) => { return <button onClick={props.increment}>clicked {props.count} times</button>; }; export default function App() { const Comp = WithCounter(ClickCounter); return ( <div className="App"> <Comp /> </div> ); }