Comments (8)
No you're absolutely right - we should apply the default props in the JSON object.
from haxe-react.
@kevinresol please check PR #59 and tell me if the result is ok - I'll need to refactor a bit probably to add some unit tests.
from haxe-react.
I was using an extern component, so I guess the macro need to put in some runtime check for the existence of defaultProps in case of external class?
from haxe-react.
Ah damn, we can't do that. Macros don't run in JS; I guess Babel can do this discovery but we can't.
Ok I'll simply add back the guard to NOT inline extern components.
from haxe-react.
Well I mean you just use macro to generate some expressions like
type.defaultProps == null ? props : Object.assign({}, type.defaultProps, props)
and put that in the inline element code. If it is an extern class.
from haxe-react.
Hmmm maybe yes.
Can be a bit convoluted because props
in your example will be either a literal object or Object.assign
for spreads. You wouldn't want to be redundant, and we can't easily use intermediary variables, which means it may not be a lot more efficient than the default createElement
call.
from haxe-react.
I pushed a depot for extern react components - it's safer like that and doesn't require a runtime replacement of React.createElement
like babel do (see babel-helpers).
from haxe-react.
For what it's worth, Babel does use a runtime helper function - our compile-time literals are much more powerful for everything that isn't an extern!
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.