Contexto
Tengo esta construcción:
[...new Array(2)].map((value, index) => `item${index}`)Cuando se ejecuta desde el navegador, el nodo o las pruebas de broma, produce constantemente:
['item0', 'item1']Si solo tuviera lo mismo sin el clon de matriz usando el operador de propagación:
new Array(2).map((value, index) => `item${index}`) Entonces obtendría (como se esperaba, debido a cómo funciona el map ):
[undefined, undefined]Las razones de lo anterior se explican aquí (no sabía esto antes):
[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#description]
Problema
Tuve este error: cuando usaba un libro de cuentos, incluso cuando usaba un clon de matriz:
[...new Array(2)].map((value, index) => `item${index}`)Obtengo el siguiente resultado:
[undefined, undefined] Solucionar el problema no es un problema, obtengo el resultado correcto al incluir .fill() :
[...new Array(2).fill(undefined)].map((value, index) => `item${index}`)Pero la pregunta es, ¿por qué lo anterior funcionaría de manera diferente con el libro de cuentos? ¿Alguien sabe esto?
Configuración del libro de cuentos
Estoy usando Nx Framework para la creación de proyectos, y prácticamente la configuración predeterminada del libro de cuentos.
Esta es la configuración en proyecto para el libro de cuentos:
const rootMain = require('../../../.storybook/main'); module.exports = { ...rootMain, core: { ...rootMain.core, builder: 'webpack5' }, stories: [ ...rootMain.stories, '../src/app/**/*.stories.mdx', '../src/app/**/*.stories.@(js|jsx|ts|tsx)', ], addons: [...rootMain.addons, '@nrwl/react/plugins/storybook'], webpackFinal: async (config, { configType }) => { // apply any global webpack configs that might have been specified in .storybook/main.js if (rootMain.webpackFinal) { config = await rootMain.webpackFinal(config, { configType }); } // add your own webpack tweaks if needed return config; }, };Y esta es la configuración raíz del libro de cuentos a la que se hace referencia en la parte superior del bloque de código anterior:
module.exports = { stories: [], addons: ['@storybook/addon-essentials'], };