作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
查看this ,我认为一成不变。 Record是表示“javascript不可变对象(immutable对象)”的数据结构,但我想一次更新多个字段,而不是每次创建多个调用set的对象。
我想做这样的事情
class LoginContext extends Immutable.Record(
{ logged : false, loading: false, error: false, user: null}){
}
var loginContext = new LoginContext()
var anotherContext = loginContext.set({'logged':'true', 'error':'false'})
我read您无法将对象传递给 API 的 Record.set()一致性:
Consistency with other uses of set both in this library and in ES6. Map and Set's set can't accept an object, because their keys can be anything, not just strings. Records must have strings, but keeping the API consistent was important.
我知道我可以使用:
var anotherContext = loginContext.withMutations(function (record) {
record.set('logged','true').set('error','true');
});
还有其他方法还是我误用了 Record?
最佳答案
我个人更喜欢合并语法,感觉更自然:
const newContent = oldContext.merge({
"logged": true,
"error": false
});
如果你正在做一些非常复杂的事情,也许 transient 版本会更好,但我只是无法想象在哪里。
这也意味着您可以根据需要利用 mergeDeep
。
关于immutable.js - 如何在 Immutable.js Record 中一次设置多个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664994/
我是一名优秀的程序员,十分优秀!