Giter VIP home page Giter VIP logo

Comments (5)

dai-shi avatar dai-shi commented on July 29, 2024

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.

Slessi avatar Slessi commented on July 29, 2024

@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.

dai-shi avatar dai-shi commented on July 29, 2024

@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.

dai-shi avatar dai-shi commented on July 29, 2024

Published! https://www.npmjs.com/package/react-hooks-global-state/v/0.15.0

Thanks for your contribution!

from react-hooks-global-state.

Slessi avatar Slessi commented on July 29, 2024

Thanks for your library :)

from react-hooks-global-state.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.