Есть нижеприведённый код. Код пытается сделать класс для создания обработчиков React-компонента
import * as React from 'react'
import { Component } from 'react'
type PropTypes = {
str: string
}
// Класс компонента
class MyComponent extends Component<PropTypes> {
handlers: Handlers
constructor(props) {
super(props)
this.handlers = new Handlers(this)
}
public render() {
return <div onClick={this.handlers.onClick}/>
}
}
// Абстрактный класс для создания классов с обработчиками
abstract class HandlersCreator<C extends Component> {
props: Pick<C, 'props'> // Пытаемся присвоить тип «props».
// Как-то нужно здесь использовать PropTypes, полученный из «C»
constructor(public component: Readonly<C>) {
// Тут происходит ругань, что нельзя присвоить, ибо типы
// 'C["props"]' и 'Readonly<{ children?: ReactNode }> & Readonly<{}>'
// несовместимы
this.props = component.props
}
}
// Класс с обработчиками
class Handlers extends HandlersCreator<MyComponent> {
constructor(component: MyComponent) {
super(component)
// Тут тоже ошибка
// Property 'str' does not exist on type 'Pick<MyComponent, "props">'
console.log(this.props.str)
}
public onClick() {
// Тут колдунство для клика
}
}
Требуется в HandlerCreator'е получить тип свойства «props» реакт-компонента. Я полагаю, его нужно как-то получить из generic'а C. Напрямую использовать PropTypes нельзя. Как быть?
Всё оказалось намного проще, чем я думал:
interface HandlersCreator<C extends Component> {
props: C['props']
}
Здравствуйте! проблема такая как передать значение чекбокса если это значение с пробелом :
В каких случаях используется FormData ( const formData = new FormData();) при отправке данных с формы POST запросомможно просто же отправить в body данные с формы
ЗдравствуйтеПомогите, пожалуйста, реализовать условия вывода результата на сайте при вводе чисел