Comments (2)
I've considered adding this in the past, but think it's probably best to debounce when you call setState
to issue the new request. There is also a Debounce component that might work for you.
I can still be talked into it (and have considered adding it in the past), but was trying to keep the component/api as simple as possible. Definitely feel free to send a PR and we can discuss, as I'm not completely against the idea, I just want to make sure it's the best place to keep it.
Maybe just exposing a hook point to allow controlling when the requests are issued would be best. Something like onRequest
and you can return a promise/boolean to control whether to actually send the request, this way you can bring your own debounce/throttling implementation with you (lodash/etc, debounce on raising/falling edge, etc).
from react-fetch-component.
With the addition of the fetchFunction
prop and example test on how to use it for debouncing, I think that is the extent I'm going to add debouncing within <Fetch>
.
If you look at the test, you'll see only a single network request after 4 are made in quick succession. Doing it this way will still call multiple re-renders, but each of these will be given the same data as the last (and thus only) request.
I still think it's best to handle this outside of Fetch
, such as using the Debounce
component as this will remove the unnecessary rerenders. You could also combine the 2 into a DebouncedFetch
component and just pass all the props down to Fetch
except for period
.
from react-fetch-component.
Related Issues (20)
- Research running fetch in a webworker
- Supply caching strategy
- Add FetchMock
- error remains an empty object HOT 1
- Only retain successful responses in cache HOT 8
- Support aborting HOT 1
- Do not call setState when component is unmounted
- `loading` initially starts as `null`? HOT 6
- Allow for fetching cached data HOT 3
- Add support for Hooks HOT 1
- Use Typescript
- Support Suspense
- Support refetching if `options.body` changes, even if url doesn't HOT 5
- How to refetch data if error occured HOT 3
- Uncaught (in promise) TypeError: failed to fetch HOT 1
- Is this project abandoned? HOT 2
- Add explicit "onDataChange" property
- Support async onDataChange HOT 1
- Smart body parsing based on Content-Type
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 react-fetch-component.