Tengo un archivo colors.ts :
export const black = '#0C0C0C'; export const blue = '#22618E';y cuando quiero importar un color específico, lo importo así:
import {black} from 'Shared'; En mi carpeta compartida tengo un index.ts que exporta los colores:
export * from './colors';Ahora quiero poder exportar e importar de la misma manera cuando uso un tema.
Ejemplo
colors.ts :
const DefaultTheme = { black: '#0C0C0C', blue: '#22618E', } const SpecialTheme= { black: 'red', blue: 'yellow', } export const ColorsBytheme = () => { const context = myContext(); return context.Default? DefaultTheme :SpecialTheme; }Problema :
No puedo deconstruir/importar las propiedades directamente, esto me da indefinido:
import {black} from 'Shared';¿Cómo puedo lograr esto?
EDITAR:
También lo intenté usando una función de autoinvocación al exportar:
const ColorsBytheme = () => { return DefaultTheme; }; export default ColorsBytheme();cuando importo
import { black } from 'Shared';aun no esta definido
Según su ejemplo de código, actualmente está exportando ColorsBytheme como una función que genera/devuelve el objeto del tema... por lo tanto, su importación/deconstrucción debería verse algo así como:
import { ColorsBytheme } from "Shared" const { black } = ColorsBytheme();Otra opción si desea tener una sola línea sería usar require en lugar de import:
const { black } = require("Shared").ColorsBytheme()Las variables que se importan son solo eso, variables estáticas. Las funciones no se evalúan cuando se importan, por lo tanto, para que los valores sean dinámicos, la función debe ejecutarse.