I want to create an NPM package. The code I use is working – I tested it inside another project. But when I try to separate this code from my the project everything brokes up with error
Uncaught Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
Here’s package.json
{
"name": "some-name",
"version": "0.0.1",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"peerDependencies": {
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"dependencies": {
"@types/react": "^17.0.38",
"@types/react-dom": "^17.0.11",
"typescript": "^4.5.5"
}
}
And the code of the package:
import { VFC, useMemo } from 'react';
export const someHOC = (Component: VFC) => {
useMemo(() => [], []);
return Component;
};
I build this code with tsc
without any flags.
And for some reason I can’t use this package:
import React from 'react';
import ReactDOM from 'react-dom';
import { someHOC } from 'some-name';
const Some = someHOC(() => <div>asdasd1</div>);
ReactDOM.render(
<Some/>,
document.querySelector('#root'),
);
Could you please explain me where am I wrong?