Используйте обработчик событий в React Component for TSX tag - PullRequest
0 голосов
/ 22 ноября 2018

Есть ли способ сделать обработчик событий, определенный в компоненте React, доступным в HTML-подобном теге?Я имею в виду что-то вроде:

<MyComp param1="abc" param2="def" onDoSomething={this.someMethod} />

Моя цель - определить onDoSomething, но в настоящее время я знаю только, как создавать такие параметры, как param1 и param2.

export interface MyCompProps {
    param1: string;
    param2: string;
}

export interface DoSomethingEvent {
    someParam: string;
}

export class MyComp extends React.Component<MyCompProps, {}> {
    private doSomethingDispatcher = new EventDispatcher<DoSomethingEvent>();

    public onDoSomething(handler: Handler<DoSomethingEvent>) {
        this.doSomethingDispatcher.register(handler);
    }

    private fireDoSomething(param: string) {
        this.doSomethingDispatcher.fire({someParam: param});
    }
}

Как я могу сделать обработчик событий onDoSomething доступным через TSX, аналогично использованию события onClick?

1 Ответ

0 голосов
/ 23 ноября 2018

Возможно, вы столкнулись с проблемами, так как в настоящее время вы не предоставляете функцию onDoSomething, но возвращаемый результат:

<MyComp param1="abc" param2="def" onDoSomething={this.someMethod()} />

должен быть

<MyComp param1="abc" param2="def" onDoSomething={this.someMethod} />
...