Comments (5)
Hm, interesting. The fact that you are using getGlobalState
and react-apollo invokes setContext
in render means the value is not reactive but it reads the value passively.
I'm not sure how your code works entirely, but if it doesn't require the reactivity, it wouldn't be good to use the global state. How about defining the variable externally?
let magic;
export const getMagic = () => magic;
export const setMagic = (m) => { magic = m; };
import { getMagic } from ...;
new ApolloClient({
link: ApolloLink((operation, forward) => {
operation.setContext({ magic: getMagic() });
}),
});
If this doesn't work, there must be some use cases that I don't yet understand.
I would like to come up with solutions in such cases, preferably without removing the warning.
The warning exists because often people can misuse getGlobalState
where it should be useGlobalState
.
BTW, one of my motivations to develop this library is to use it with react-apollo. I'd use it for global state that apollo-link-state doesn't fit well with.
from react-hooks-global-state.
@dai-shi I store information about the currently authenticated user and set headers for API requests in the link. I use the reactivity inside the app to change view information but I also need the value in the link to authenticate with API
The external things you suggest to create are already catered by the library, I'm just thrown an error when I try to use them
from react-hooks-global-state.
@Slessi Your use case seems totally making sense. On a second thought, I can't think of any other solutions than removing the warning. Let me work on it in a minute.
from react-hooks-global-state.
Published! https://www.npmjs.com/package/react-hooks-global-state/v/0.15.0
Thanks for your contribution!
from react-hooks-global-state.
Thanks for your library :)
from react-hooks-global-state.
Related Issues (20)
- Error calling createStore (Typescript 3.6.4) HOT 2
- Question: how do developers use this library? HOT 1
- Please add CHANGELOG for 0.17.0 HOT 1
- getGlobalState loses sync with useGlobalState after 0.17 HOT 8
- How to use Redux Devtools Extension HOT 3
- comparison to react-tracked and initial values for a state HOT 9
- Error: You cannot use <GlobalStateProvider> more than once. HOT 5
- How to separate reducer and Action Type then call it to combineReducers (Ex: 07_middleware) HOT 3
- Offline saved data for React Native HOT 11
- Be able to access multiple state keys with a single hook HOT 3
- Mocking useGlobalState with jest? HOT 8
- Restoring initial state from localStorage, if any? HOT 10
- global state not preserved with Fast Refresh HOT 2
- Argument of type '"cart"' is not assignable to parameter of type 'never' HOT 5
- Asynchronous initial state HOT 4
- Is it possible to change a value outside a component? HOT 2
- Persistence with createGlobalState HOT 6
- How to easily reset state? HOT 1
- How to update the state in Bulk ? HOT 3
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-hooks-global-state.