would like to export a module that get's the module's definition from some global object.
It's something like:
export {
get DynamicModule() {
return __globalFluxStorage.state.property.property.property.property
}
}
...
import {DynamicModule} from 'dynamic-module'
We have a complex flux storage and DynamicModule is just a means of accessing __globalFluxStorage.state.property.property.property.property without the need to type in the long property accessor. Is this possible? Thanks.
Edit:
Since I am using babel, tried something like this:
Object.defineProperty(module.exports, "Forms", {
get: function() {
return __globalFluxStorage.state.property.property.property.property
}
});
But does not work, i.e. {DynamicModule} is undefined
Exports without a default tag are Named exports. Exports with the default tag are Default exports. Using one over the other can have effects on your code readability, file structure, and component organization. Named and Default exports are not React-centric ideas.
Description. Every module can have two different types of export, named export and default export. You can have multiple named exports per module but only one default export. Each type corresponds to one of the above syntax.
Export default is used when there is only one export to be made from a particular file and when importing this one element, we don't have to worry about giving the same name to our import. This combination of export and import allows us to implement modularity.
No, it is impossible to make a getter for a module export - they are variable bindings, not properties.
However you could simply make that a default export:
export default __globalFluxStorage.state.property.property.property.property;
import DynamicModule from 'dynamic-module';
If you want a named import, you'll have to declare the name in your export:
export var DynamicModule = __globalFluxStorage.state.property.property.property.property;
import {DynamicModule} from 'dynamic-module';
This would also allow changing the value later when it's not available right at the time of the module being loaded:
export var DynamicModule;
…
DynamicModule = __globalFluxStorage.state.property.property.property.property;
(although in that case you might want to consider exporting a Promise or EventEmitter instead)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With