Javascript 聚合物重熔物观察
因此,我将redux与polymer 2.0一起使用,它工作得非常好。然后我突然遇到了一个问题,我一辈子都找不到我应该做什么Javascript 聚合物重熔物观察,javascript,redux,polymer,polymer-2.x,Javascript,Redux,Polymer,Polymer 2.x,因此,我将redux与polymer 2.0一起使用,它工作得非常好。然后我突然遇到了一个问题,我一辈子都找不到我应该做什么 settings:{ type:Object, statePath: 'setting.documentSettings', observer:'_extendedInfo' } 然后在我的行动中 return Object.assign({}, state
settings:{
type:Object,
statePath: 'setting.documentSettings',
observer:'_extendedInfo'
}
然后在我的行动中
return Object.assign({}, state, {
documentSettings: setting
});
此外,我还有多个合并的还原器,这就是为什么我的属性中有它的setting.documentSettings
所以我改变了对象文档设置,属性设置也改变了,这很好。但是,观察者从未被击中,我在任何地方都找不到这样的例子。我认为,他的评论解释了为什么观察者没有开火
暂且不考虑Redux,以下聚合物属性代码将在路径设置
上创建一个观察者:
settings: {
type:Object,
observer:'_extendedInfo'
}
观察路径设置
将更改顶级属性设置
,但不会更改其子属性,因为Polymer实现观察者的方式不同
如果我正确理解了您的代码(不一定是这样),我认为您实际上需要一个关于设置的复杂观察者。*
,因为您也需要观察对任何子路径的任何更改:设置。文档设置
,设置。搜索设置
,等等
要创建这样一个复杂的观察者,它应该是
static get observers() {
return [
// Observer method name, followed by a list of dependencies, in parenthesis
'_extendedInfo(settings.*)'
];
}
请注意,对于观察通配符路径(如设置。*
),可以在观察者
数组(请参见)中声明观察者,而不是在属性本身的声明中声明
另见
希望这会有帮助,我没有完全误解你在做什么。。。祝您好运看起来您是在订阅“
设置
”对象中位于“文档设置
”键下的某个内容,但在您的重复操作中,您是在“直接”覆盖存储顶层名为“文档设置
”的键,而不是在“设置
”下对象。这是因为我有多个减缩器@这解决了一半的问题。它击中了观察者,但我从redux返回值的方式不正确,并且它没有接收到值。
static get observers() {
return [
// Observer method name, followed by a list of dependencies, in parenthesis
'_extendedInfo(settings.*)'
];
}