Comments (4)
Currently
this
const value = React.useMemo(function somethingHere() {
return 'memoed-value';
}, []);
compiles to
const value = React.useMemo([]);
The issue lies in eliminateUnreferencedIdentifiers
.
If this is commented out in compilers.ts
, the function is not removed and the error does not occur.
from router.
I released a new version, did that help at all? I was noticing an issue with array destructuring as well.
from router.
I released a new version, did that help at all? I was noticing an issue with array destructuring as well.
no same problem exists in v1.26.8
https://stackblitz.com/edit/github-is6hai-wa51rg?file=package.json
from router.
Did a bit of debugging and figured it out.
If this line, if the getIdentifier
function is modified to include this, then this gets resolved.
function getIdentifier(
path: NodePath<
| BabelTypes.FunctionDeclaration
| BabelTypes.FunctionExpression
| BabelTypes.ArrowFunctionExpression
>,
): NodePath<BabelTypes.Identifier> | null {
// ..
if (
path.node.type === 'ArrowFunctionExpression' ||
path.node.type === 'FunctionExpression'
) {
return null
}
// ...
}
Alternatively, in the isIdentifierReferenced
function, you could add a check before this line to check if a FunctionExpression is a child of a CallExpression.
function isIdentifierReferenced(
ident: NodePath<BabelTypes.Identifier>,
): boolean {
const binding = ident.scope.getBinding(ident.node.name)
if (
binding?.path.node.type === 'FunctionExpression' &&
binding.path.parentPath?.node.type === 'CallExpression'
) {
return true
}
// ...
}
@tannerlinsley I'm hesitant to add a PR for this since testing pretty much breaks as some snapshot files rely on absolute pathing from your machine for the tests to pass.
This was the test I used to validate that this worked.
// tests/test-files/functionAsParameter.tsx
import * as React from 'react'
const value = React.useMemo(function performAction() {
return 'true'
}, [])
console.log(value)
const value2 = React.useMemo(() => {
return 'true'
}, [])
console.log(value2)
Edit: It looks like tests aren't failing in CI since the script in the package.json is named differently.
from router.
Related Issues (20)
- The test does not work when rendering the router HOT 6
- File base subroutes regression HOT 4
- Context is undefined when search validation fails HOT 1
- Incorrect not found component being rendered HOT 3
- Overlapping Keys Cause Type Issues Using Experimental Intersection
- `Route.fullPath` is typed incorrectly when using path params HOT 8
- Undefined context after redirect HOT 6
- `beforeLoad` does not run when resetting from `errorComponent`
- `matchRoute` from `useMatchRoute` doesn't resolve TS type with pathless (layout) routes HOT 1
- [router-generator] index route underneath layout route inside of route group not working
- URIError: URI malformed HOT 5
- Issue with `useBlocker` when navigating to route with `beforeLoad` and `redirect`
- Updating to 1.34.9 causes issue with useRouter HOT 1
- Can't use $ route params when using Microsoft TFVC HOT 1
- Typescript: useRouteContext with strict: false
- SSR streaming is throwing error HOT 2
- `search` seems to be inferring the output type of the `validateSearch` instead of `z.input` HOT 1
- Unexpected behavior with not found component specified in the __root HOT 4
- Root route is rendered before loaders are finished HOT 2
- TanStackRouterDevtools broken when rendering inside of a shadow DOM HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from router.