Security News
New Proposed CISA Mandate Would Require Critical Infrastructure to Report Ransom Payments Within 24 Hours
CISA has proposed a set of new rules that would require critical infrastructure to report cyber incidents and ransom payments.
hoist-non-react-statics
Advanced tools
Copies non-react specific statics from a child component to a parent component
Weekly downloads
Package description
The hoist-non-react-statics package is used to copy non-react specific statics from a child component to a parent component. This is often used in higher-order component (HOC) patterns, where the HOC wraps a child component but needs to expose the same static methods as the child.
Hoisting non-react statics
This feature allows you to automatically copy static methods from a child component to a parent component, which is useful when creating higher-order components that should not interfere with the static methods of the wrapped component.
import hoistNonReactStatics from 'hoist-non-react-statics';
function enhance(WrappedComponent) {
class Enhance extends React.Component {
/* ... */
}
hoistNonReactStatics(Enhance, WrappedComponent);
return Enhance;
}
// Usage
// If WrappedComponent had static method foo(), Enhance will also have it.
Similar to hoist-non-react-statics, react-forward-refs is designed to work with higher-order components. It forwards refs through the HOC to the wrapped component, but it does not handle the hoisting of non-react statics.
While not directly related to hoisting statics, this plugin removes propTypes from React components in production builds, which can be a complementary step when optimizing higher-order components.
This package helps in inheriting static properties and methods from a parent React component to a child component. It serves a similar purpose to hoist-non-react-statics but focuses on class inheritance.
Readme
Copies non-react specific statics from a child component to a parent component.
Similar to Object.assign
, but with React static keywords blacklisted from
being overridden.
$ npm install --save hoist-non-react-statics
import hoistNonReactStatics from 'hoist-non-react-statics';
hoistNonReactStatics(targetComponent, sourceComponent);
If you have specific statics that you don't want to be hoisted, you can also pass a third parameter to exclude them:
hoistNonReactStatics(targetComponent, sourceComponent, { myStatic: true, myOtherStatic: true });
See this explanation from the React docs.
Please use latest 3.x. Versions prior to 3.x will not support ForwardRefs.
hoist-non-react-statics Version | Compatible React Version |
---|---|
3.x | 0.13-16.x With ForwardRef Support |
2.x | 0.13-16.x Without ForwardRef Support |
1.x | 0.13-16.2 |
This package uses Object.defineProperty
which has a broken implementation in IE8. In order to use this package in IE8, you will need a polyfill that fixes this method.
This software is free to use under the Yahoo Inc. BSD license. See the LICENSE file for license text and copyright information.
Third-party open source code used are listed in our package.json file.
FAQs
Copies non-react specific statics from a child component to a parent component
The npm package hoist-non-react-statics receives a total of 12,582,040 weekly downloads. As such, hoist-non-react-statics popularity was classified as popular.
We found that hoist-non-react-statics demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA has proposed a set of new rules that would require critical infrastructure to report cyber incidents and ransom payments.
Security News
Redis is no longer OSS, breaking its explicit commitment to remain under the BSD 3-Clause License forever. This has angered contributors who are now working to fork the software.
Product
Socket AI now enables 'AI detected potential malware' alerts by default, ensuring users benefit from AI-powered state-of-the-art malware detection without needing to opt-in.