Security News
Introducing the Socket Python SDK
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
react-redux-lazy
Advanced tools
If you want to late connect you sate or/and actions on your components, this is the solution you're looking for!
NPM:
npm install --save react-redux-lazy
Yarn:
yarn add react-redux-lazy
The lazyConnect
expects the same parameters as the react-redux connect
, the diference here is that
lazyConnect can receive a promise that resolves into any of the parameters: "mapStateToProps", "mapDispatchToProps", "mergeProps" and/or options, and it returns a React.lazy
instance (so remember to wrap the container in a <Suspense>
).
You still able to pass the normal values as you do in connect
, so if you want only lazy map you actions, the only promise you give is the mapDispatchToPropsPromise
, and pass all the other parameters as you normally does with connect
.
Example for lazy mapDispatchToProps:
import { lazyConnect } from "react-redux-lazy";
import SampleComponent from "./SampleComponent";
// A normal value as you do in connect()
const mapStateToProps = { ... }
// Here we have a promise that resolves into the common mapDispatchToProps
const mapDispatchToPropsPromise = import("./actions/my-actions").then(mod => ({ sampleAction: mod.sampleAction }));
export default lazyConnect(mapStateToProps, mapDispatchToPropsPromise)(SampleComponent);
And then, as said before, lazyConnect will return a React.lazy
instance, so just use it wrapped in a <Suspense>
:
import React from "react";
import Spinner from "Spinner";
// Here comes it :)
import LazySampleComponent from "./LazySampleComponent";
export default () =>
<Suspense fallback={<Spinner />} >
<LazySampleComponent />
</Suspense>
Normally you will want to do the import based on a parameter, so for this you will export not the lazyConnect result directly, but a factory that to call it and create the React.lazy container for you:
Let's how the example above will be using as a factory:
import { lazyConnect } from "react-redux-lazy";
import SampleComponent from "./SampleComponent";
// A normal value as you do in connect()
const mapStateToProps = { ... }
export default actionType => {
// Here we have a promise that resolves into the common mapDispatchToProps based on a parameter
const mapDispatchToPropsPromise = import(`./actions/${actionType}`).then(mod => ({ sampleAction: mod.sampleAction }));
return lazyConnect(mapStateToProps, mapDispatchToPropsPromise)(SampleComponent);
}
And then, as said before, lazyConnect will return a React.lazy
instance, so just use it wrapped in a <Suspense>
:
import React from "react";
import Spinner from "Spinner";
// Note the lower camel case notation, it's a factory!
import lazySampleComponent from "./lazySampleComponent";
export default (props) => {
// Now we have the Component :)
const LazySampleComponent = lazySampleComponent(props.actionType);
return (
<Suspense fallback={<Spinner />} >
<LazySampleComponent />
</Suspense>
);
}
You can check a live example under the dev/
directory, using the lazyConnect. Just remember to not commit you changes on it!
To check this example running, run the command:
yarn start:dev
This will make the webpack-dev-server
start.
This project is under the MIT license.
FAQs
Lazy Redux connect for React
The npm package react-redux-lazy receives a total of 4 weekly downloads. As such, react-redux-lazy popularity was classified as not popular.
We found that react-redux-lazy 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
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
Security News
Floating dependency ranges in npm can introduce instability and security risks into your project by allowing unverified or incompatible versions to be installed automatically, leading to unpredictable behavior and potential conflicts.
Security News
A new Rust RFC proposes "Trusted Publishing" for Crates.io, introducing short-lived access tokens via OIDC to improve security and reduce risks associated with long-lived API tokens.