Comments (4)
Well, the question here is: Should you even be trying to call container methods?
import React from 'react'
import Counter from './containers/Counter'
function MyApp(props) {
return (
<Counter.Provider initialState={props.initialCount}>
<div>...</div>
</Counter.Provider>
)
}
MyApp.getInitialProps = async () => {
return { initialCount: 999 }
}
from unstated-next.
Why my comment is deleted? I am not native english speaker, if there are any wording not appropriate, sorry for that.
The following is what I would like to say..
If the question is: Can't use Store methods outside of function?
The answer should be It can't as React Hook is living inside functional React Component and Unstated-Next is based on React Hooks.
Is this issue solvable?
Yes and No, to solve this issue, the only way right now is implement the same API like React Hooks provides (may not worth it) and React maintains the whole lifecycle of React component rendering. React could use the global variable reference to implement useXXX hooks. This could only be possible if Unstated-Next has the same assumption that React has, but this makes lots of complexity.
Differences between Unstated and Unstated-Next
Unstated-Next use React Hooks directly while Unstated create a Container class act like React Component but they are not equal. So you can call function of Container using after "new" outside React and then do the dependency injection back. But this cannot be done in Unstated-Next.
Next.js Example
https://github.com/zeit/next.js/blob/master/examples/with-unstated/pages/_app.js
You can see the api could be persist (resetStore, initStore, as well as custom actions if exists) among server-side and client-side. But this also cannot be done with Unstated-Next.
What I would like to say is..
If Unstated-Next aims to be a replacement of Unstated, the above issue should be an issue.
If Unstated-Next is a state management library using React-Hook and have a rule that the state must live in React, then Unstated-Next cannot replace Unstated.
That's why I think both libraries should be exist.
Just like Context API + Hooks Combo cannot completely replace Redux.
from unstated-next.
@raymondsze Please move to a different issue
from unstated-next.
@jamiebuilds
Created, #20.
from unstated-next.
Related Issues (20)
- Use a published library - Error: Component must be wrapped with <Container.Provider> HOT 1
- Translate to Portuguese
- Important React.memo tip
- Can selectors be supported? HOT 4
- Unstated-next with Next.js and SSR HOT 1
- Can I use unstated-next to store non-serializable data? HOT 1
- TypeError: useHook is not a function with Next.js HOT 1
- Reusable functions that leverage Containers outside components HOT 1
- Error: Component must be wrapped with <Container.Provider> HOT 9
- Interdependent containers and asynchronous operations HOT 3
- Can't compose containers manually? HOT 6
- Could you add something so that you can use the provider and the context in the same component? Maybe add an HOC like withContainer()? HOT 3
- Ideas for covering more use cases HOT 1
- all containers on the top level of my react application
- Why Unstated? HOT 2
- How to produce types for Containers?
- Testing UI using unstated-next
- [Question] How to use addEventListener in unstated-next
- Reducing re-renders useCallback optimization should use functional updates
- Container.useContainer() vs useContainer(Container)
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 unstated-next.