Comments (5)
I like the idea in general, but I'd like to see how well it works with PromiseStates, especially ones that are composed with PromiseState.all() and need to be decomposed on fulfillment. We use that pattern heavily to block on groups of fetches that should rendered together. This might also make it easier to allow for application provided defaults for the pending and error states. If you'd like to try making a PromiseState-specific version of this, it would at least be interesting thought experiment.
from react-refetch.
I'll use React Refetch on my projects, then I'll start the experiments with "HOCing".
Soon I'll post my thoughts.
from react-refetch.
@ryanbrainard I found a simple solution, I don't even need to change my code:
import React from 'react';
import { connect, PromiseState } from 'react-refetch';
import Async from '@hnordt/reax-async';
import ProjectPanel from './ProjectPanel.js';
const AsyncProjectPanel = Async(ProjectPanel);
const Projects = ({
projectsFetch,
likesFetch
}) => {
const allFetches = PromiseState.all([userFetch, likesFetch]);
return (
<AsyncProjectPanel
projects={projectsFetch.value}
likes={likesFetch.value}
isLoading={allFetches.pending}
error={allFetches.reason} />
);
};
export default connect(() => ({
projectsFetch: '/api/projects.json',
likesFetch: '/api/likes.json'
}))(Projects);
from react-refetch.
It works, but I personally don't like having to see the attributes of the PromiseState
in all my components and also has duplication for the pending and error states. I like the HOC, but it should really be PS-specific to be used with Refetch IMHO. Perhaps a second-order HOC could even handle the application-specific defaults so something could be included (mostly) out of the box.
from react-refetch.
I'm going to close this for now since there's nothing really actionable here at this point. If you'd like to provide an HOC PromiseStateContainer, please open a pull request. It could even just a link in the readme to a gist, but bonus points if it can be a double HOC the incorporated application defaults and can be included in this library.
from react-refetch.
Related Issues (20)
- Identity requests meta does not have component HOT 1
- Accessing the response body in case of reject HOT 2
- Posting data and having it return as a promise HOT 5
- impossible to update my props into react-refetch HOT 1
- Update Lifecycle Hooks for Future Async Rendering HOT 3
- skip/disable/remove fetch config conditionally HOT 4
- Doesn't support SSR HOT 5
- [idea] useRefetch HOT 5
- Refresh POST method request doesn' work HOT 1
- [Typescript] Type of "body" attribute must be string? and not object? on the Mapping interface
- Can you retry a failed request from within render? HOT 1
- Typings problem with PromiseStateMapping/FunctionMapping HOT 1
- Pass this.state.data to then(), catch(), andThen() and andCatch() functions for more powerful side effects HOT 2
- Override default behavior on failure of fetch with refreshInterval HOT 1
- Typescript types seem not to work properly HOT 9
- react 16.9, Warning: componentWillMount has been renamed, and is not recommended for use HOT 2
- Fetch rejected but reason empty HOT 2
- Example in README cannot be compiled in TypeScript HOT 1
- Is it possible to use a callback of a request? HOT 4
- Support for react@17 HOT 1
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-refetch.