Skip to content

Add mangling prop name in JSX v4 #639

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 13, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions pages/docs/react/latest/migrate-react.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -211,3 +211,32 @@ let make = () => {
</div>
}
```

### Mangling the prop name

The prop name was mangled automatically in v3, such as `_open` becomes `open` in the generated js code. This is no longer the case in v4 because the internal representation is changed to the record instead object. If you need to mangle the prop name, you can use the `@as` annotation.

Rewrite this:

```res
module Comp = {
@react.component
let make = (~_open, ~_type) =>
<Modal _open _type>
<Description />
</Modal>
}
```

To this:

```res
module Comp = {
@react.component
let make =
(@as("open") ~_open, @as("type") ~_type) =>
<Modal _open _type>
<Description />
</Modal>
}
```