简体   繁体   中英

React component with hooks as npm module

When I try to use React Hooks in module which I use as dependency it's fail. I'm getting a following 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:

But if I use class-based component, it's ok. Why can this happen?

Here is excerpt from my package.json

{
  "main": "dist/index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "./node_modules/.bin/babel src -d dist",
    "prepublish": "npm run build"
  },
  "peerDependencies": {
    "react": "^16.10.2",
    "react-router-dom": "^5.1.2"
  },
  "devDependencies": {
    "axios": "^0.19.0",
    "jwt-decode": "^2.2.0",
    "qs": "^6.9.0",
    "@babel/cli": "^7.6.4",
    "@babel/core": "^7.6.4",
    "@babel/preset-env": "^7.6.3",
    "@babel/preset-react": "^7.6.3"
  }
}

Here is the component:

const Test = () => {
  const [state, setState] = React.useState('test')
  return <div>{state}</div>
}

Maybe what you are trying to use is useState and not useEffect :

const Test = () => {
  const [state, setState] = React.useState('test')
  return (<div>{state}</div>)
 }

You Cant Create A npm library with hooks you need to convert your function into class component and can be made as a library

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM