Хорошо, подумайте, у меня есть набор компонентов, у всех этих компонентов есть некоторые базовые c поля. Примером может быть всплывающее окно, которое отображается в случае ошибочного состояния.
Это приводит к чему-то вроде:
function MyComponent(props) {
const [showErr, setShowErr] = React.useState(false);
const [errMsg, setErrMsg] = React.useState('');
return <>
<...>
<SomePopup
open={showErr}
errMsg={errMsg}
/>
</>
}
Хотя это тривиально, настройки могут быть не в случае более сложного взаимодействия с остальной частью компонента нет. Это также ненужный шаблон и нарушает DRY.
Состояния, конечно, могут быть объединены в пользовательский хук useError
(или в этом тривиальном случае в одном состоянии). Однако могу ли я также сделать так, чтобы всякий раз, когда я объявлял объект, имеющий useError
, он также имел настроенный компонент?
Таким образом, я мог бы предотвратить такие ошибки, как «забыть всплывающее окно» и «забыть установить» useError state "- DRY ошибки.