Я просто не могу обернуть голову вокруг этого, я думаю, я пробовал, наверное, полдюжины раз и всегда прибегаю к any
... Есть ли законный способ начать с HTML-элементом, обернуть это в компоненте и обернуть его в другом компоненте, чтобы HTML-реквизит проходил через все? По сути настраивать элемент HTML? Например, что-то вроде:Расширение HTML-элементов в React и TypeScript при сохранении реквизита
interface MyButtonProps extends React.HTMLProps<HTMLButtonElement> {}
class MyButton extends React.Component<MyButtonProps, {}> {
render() {
return <button/>;
}
}
interface MyAwesomeButtonProps extends MyButtonProps {}
class MyAwesomeButton extends React.Component<MyAwesomeButtonProps, {}> {
render() {
return <MyButton/>;
}
}
Использование:
<MyAwesomeButton onClick={...}/>
Всякий раз, когда я пытаюсь такого рода композиции, я получаю сообщение об ошибке, подобное:
свойство 'исх' обув является не присваивается целевому свойству.
Вы ищете компоненты высокого порядка (фабрики компонентов). Проверьте их онлайн и посмотрите, подходит ли это тому, о чем вы просите. Они по сути являются «фабриками компонентов», которые позволят вам обернуть компонент в другой компонент, который возвращает этот исходный компонент, но с новыми или модифицированными реквизитами. – ZekeDroid
Является ли время компиляции ошибки (когда вы скомпилируете)? Потому что я попытался скомпилировать ваш код с помощью команды 'tsc' и отлично работает. Я попытался отобразить ' console.log ('Clicked')} />' –
Leone
Одна вещь, которую я заметил, это то, что вы не должны передавать реквизиты в свой собственный (HTML) элемент как ' 'точно? – Leone