In einigen Szenarien müssen Sie das React-Hook-Konzept in reaktionsklassenbasierten Komponenten verwenden.
Aber wie Sie wissen, funktionieren Reaktions-Hooks nur in Funktionskomponenten, wenn Sie sie direkt in klassenbasierten Komponenten verwenden möchten.
es wird ein Fehler passieren.
Wie es geht, es gibt eine Workaround-Lösung dafür.
Es gibt 3-Schritte-Lösungen
Erstellen Sie einen benutzerdefinierten Hook
import {useState} from 'react'; const useGreet = () => { const [text, setText] = useState(''); //... do any additional operation / hooks you want to add return text; }
Erstellen einer Komponente höherer Ordnung
// import useGreet export const MyHigherOrderComponentDemo = (Component) => { return (props) => { const text = useGreet(); return <Component text={text} {...props}/>; } }
Komponente höherer Ordnung in klassenbasierte Komponente einschließen
// import useGreet class MyClass extends React.component { render() { return ( <p>{this.props.text}</p> ) } } export default MyHigherOrderComponentDemo(MyClass);
Das obige ist der detaillierte Inhalt vonReagieren Sie Hook in der Klassenkomponente. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!