假设我有一个对象和一个函数,它接受一个更新对象并返回一个新对象,其中第一个对象和更新对象如下所示:
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 键/值对?
谢谢
我对 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)
感谢您的帮助