Event handler in JSX + TS (Preact). Issue with generated typing
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 42/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- typescript
- Domain
- frontend
Research direction
Start with the generated components.d.ts entry for the Dropdown event and the JSX examples in the report; compare the generated handler name with the runtime name accepted by Preact. Reproduce both forms and verify that the documented, typed form invokes the handler without a TypeScript error.
Written by the indexing model from the issue text.
Description
Stencil version:
@stencil/core@<1.11.3>
I'm submitting a:
[x] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://stencil-worldwide.herokuapp.com/ or https://forum.ionicframework.com/
Current behavior:
I have a component with an EventEmitter, called Dropdown. According to the docs and the generated typefile, i should be able to access the event handle using camel-case: <Dropdown onDropdownSelect={handler}> in JSX, but the event is never called.
Although if i use ondropdownSelect the event fires. I have checked in the components.d.ts file, and the event is typed as onDropDown, so if i use the handler that works, I get a TS error.
Expected behavior:
I would expect that the event handler would be the same as the type that is created in the types file.
Steps to reproduce:
Related code:
Stencil component
@Component({
tag: 'dropdown',
})
export class Dropdown {
@Event() dropdownSelect!: EventEmitter<string>;
...
protected handleSomething(value: string) {
this.dropdownSelect.emit(value);
}
}
preact
doesn't work
<dropdown onDropdownSelect={ev => this.someMethod(ev)} />
works
<dropdown ondropdownSelect={ev => this.someMethod(ev)} />
Other information:
- Dominant language
- TypeScript
- Stars
- 13.1k
- Forks
- 855
- Avg merge
- 4h 7m
- Merged PRs (30d)
- 44
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from stenciljs/core
-
Stencil v5
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Stencil v5
Difficulty 4/5 3-5 days Newbie friendliness 55/100
-
Bug: Validated Stencil v5
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
Feature: Want this? Upvote it!
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Feature: Want this? Upvote it!
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Similar issues
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
vercel/react-tweet#225 ·