Comments (3)
Hi @davinov thanks for this. I think that the link you included is pointing to a different line of code than the one you mentioned in the fix?
I'm not overly familiar with the JS client so I'm waiting for one of our other engineers to respond, but I'd be interested to know if there is a particular scenario you have identified where flagsmith
is not set? I would imagine this to always be set. Perhaps it's a typing issue further down the line for example? Should useContext
ever not return a valid instance of flagsmith
?
from flagsmith-js-client.
Thanks for your quick reply
You're right about the line, my mistake!
The same condition is repeated twice in this file:
- once in
FlagsmithProvider
L41: this seems OK because there theflagsmith
argument is of typeIFlagsmith
, and not optional - once in
useFlagsmithLoading
L114, which getsflagsmith
from the contextuseContext(FlagsmithContext)
. In that case, it seems that it could be null because of the intiialization value of the context (export const FlagsmithContext = createContext<IFlagsmith<string,string> | null>(null)
So another possibility would be to change the initialization value to a "default" flagsmith instance. However, that instance would not have any of important the parameters expected to be set by the consumers of the package, such as api
or environmentID
, so I guess this second option seems less appropriate to me.
I'll try to make a minimal reproduction repo this evening if I can spare some time.
from flagsmith-js-client.
When creating a new repo, I've noticed that my import of flagsmith/react
was mistaked. My IDE imported automatically flagsmith/src/react
instead 🤦
That included your source code to our typechecking, instead of relying on the exposed types (the .d.ts
files).
You may still want to fix the error that raises when developing your client though, if you got some time :)
Thanks again for the quick reply, and sorry for the noise
from flagsmith-js-client.
Related Issues (20)
- Flagsmith's `loadingState.error` is not respect actual error state HOT 11
- [Bug] - NextJS >= 13.0.0 SSR `useFlagsmith` state not matching the state that is passed to the provider. HOT 16
- flagsmith/react only works in React 18 HOT 3
- [Bug] - TypeError: Cannot read properties of null (reading 'getValue') HOT 5
- Flagsmith's 'useFlags' doesn't return actual cached flags when request failed HOT 2
- Rollup Name for react HOT 5
- Inconsistent license information HOT 2
- Caching with multiple instance doesn't work HOT 6
- useFlags() race condition HOT 8
- Different environments not working HOT 5
- Localstorage cache is not being wiped out in some edge cases HOT 3
- Support `getValue` fallback without `json` flag HOT 2
- useFlags not updating values in react18/Nextjs App Router
- 3.23.0 seems to have broken something HOT 4
- Intermittent Flakiness in Feature Flags on Safari/MacOS HOT 2
- Flags are null when the cacheFlags option is true HOT 3
- Typescript compiler errror `Cannot find name 'F'.` when compiling flagsmith in Angular project HOT 3
- Bundle ES(flagsmith-es) and combine with standard CJS module (flagsmith)
- Identifier/trait confusion when using `cacheOptions: { skipAPI: true } ` 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 flagsmith-js-client.