Comments (5)
You need to define your state typedef with all fields optional:
typedef MyState = {
@:optional var enabled:Bool;
@:optional var focused:Bool;
}
We can look into some kind of macro utility to help here but unfortunately there are no build macros on typedefs.
from haxe-react.
You could perhaps also make some kind of factory method that initializes a state object with default values, to avoid having to set all the fields as optional (and that could probably be a macro)... Also, I do prefer this syntax:
typedef MyState = {
? enabled : Bool,
? focused : Bool
}
from haxe-react.
When we call setState we don't want to pass default values for anything that isn't provided, this needs to be compile time somehow. I'll look into it.
As for syntax, that's entirely up to you :)
from haxe-react.
@dpeek your optional fields solution is what I mentioned in workaround no.2
That isn't really perfect because we may actually want to specify some fields as mandatory.
I am not sure if @:genericBuild can help here, to generate a concrete TStateAllOptional
type for each generic type TState
, and use that in the setState function. But that would create a lot of concrete generic types of ReactComponent, which is not really necessary in the js target.
from haxe-react.
Not much can be done on this.
from haxe-react.
Related Issues (20)
- some like macro-components? HOT 1
- Remove Dynamic context field from ReactComponent HOT 4
- Macro - replaceEntities Unicode Issue
- [job] Haxe React Freelancers wanted
- readme.md refers to incorrect imports
- Unexpected use of 'self' no-restricted-globals HOT 5
- Loading a JS module from Haxe in the same project HOT 4
- Invalid escape sequence \u. UTF-16 surrogates are not allowed in strings HOT 4
- Inconsistent defaultProps behavior in debug / no debug mode HOT 8
- PureComponent: invalid number of type parameters HOT 2
- Cannot read property 'value' of undefined HOT 1
- is jsx not support array tag? HOT 3
- Using external jsx instead of inline one HOT 2
- No changes concerning react 16 in the haxelib library version HOT 3
- Functional components is shown as <Unknow>...</Unknow> in chrome dev tools HOT 10
- Fragment support react v16.2 HOT 4
- Wrong 'ReactDOM.createPortal' method annotation
- setState callback typing issue HOT 1
- Inline mode issue? HOT 6
- The lib doesn't work with haxe 4 preview HOT 5
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 haxe-react.