小编Rem*_*miM的帖子

如何从扩展运算符返回中排除一个键/值对

假设我有一个对象和一个函数,它接受一个更新对象并返回一个新对象,其中第一个对象和更新对象如下所示:

const object = {
    id: 1,
    value: 'initial value'
}

const updateFunction = (updates) => {
    return {
        ...object,
        ...updates
    }
}

const updatedObject = updateFunction({
    id: 2,
    value: 'updated value'
})
Run Code Online (Sandbox Code Playgroud)

使用扩展运算符有一种简单的方法可以将 id 排除在扩展之外,从而更新它,因为我知道我绝对不能更改我的 updateFunction 以接受多个参数

编辑:在评论中有人提出了一个简单的解决方案,如下所示:

 return {...object, ...updates, id: object.id};
Run Code Online (Sandbox Code Playgroud)

但是假设由于某种原因我们无法访问第一个对象的 id 值,有没有办法从传播中排除 id 键/值对?

谢谢

javascript spread-syntax

8
推荐指数
1
解决办法
6493
查看次数

Webpack 5 开发服务器不会在文件更改时重新加载

我对 webpack 很陌生,所以请宽容,但我不明白为什么它在检测到修改时不重新加载页面。对于某些旧版本的 webpack,只需运行 webpack-dev-server 就足够了,但对于这些最新版本,我无法到达那里。

这是我的配置:

const path = require('path')
 
module.exports = {
    entry: './src/index.js',
    output: {
        path: path.resolve(__dirname, 'public/scripts'),
        filename: 'bundle.js'
    },
    module: {
        rules: [
          {
            test: /\.m?js$/,
            exclude: /node_modules/,
            use: {
              loader: 'babel-loader',
              options: {
                presets: [
                  ['@babel/preset-env']
                ]
              }
            }
          }
        ]
    },
    target: ['web', 'es5'],
    devServer: {
      contentBase: path.resolve(__dirname, 'public'),
      watchContentBase: true
    },
    devtool: 'source-map'
}
Run Code Online (Sandbox Code Playgroud)

这是我的脚本:

"scripts": {"dev": "webpack serve --mode=development"}
Run Code Online (Sandbox Code Playgroud)

我正在运行的版本:

"webpack": "^5.11.0",
"webpack-cli": "^4.3.0",
"webpack-dev-server": "^3.11.0"
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助

webpack webpack-dev-server

5
推荐指数
1
解决办法
6675
查看次数