Czy istnieje sposób, aby procedura obsługi zdarzeń zdefiniowana w komponencie React była dostępna w tagu podobnym do HTML? Mam na myśli coś takiego:

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

Moim celem jest zdefiniowanie onDoSomething, ale obecnie wiem tylko, jak tworzyć parametry takie jak param1 i 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});
    }
}

Jak mogę udostępnić obsługę zdarzeń onDoSomething za pośrednictwem TSX, podobnie do korzystania ze zdarzenia onClick?

0
Socrates 22 listopad 2018, 22:44

1 odpowiedź

Najlepsza odpowiedź

Możesz napotkać problemy, ponieważ obecnie nie udostępniasz funkcji onDoSomething, ale zwrócony wynik:

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

Powinien być

<MyComp param1="abc" param2="def" onDoSomething={this.someMethod} />
1
Cecil 23 listopad 2018, 00:53