我正在用Polymer 2开发一个应用程序,并且正在测试redux如何使用它来控制数据流。我一直在遵循一些简单的例子,并试图产生一个概念证明,其中我能够使用redux存储将一些数据从一个html移动到另一个html。
当一个html文件中的按钮被按下时,我正在运行以下函数:
savePackage() {
const payload = {"Package Name" : "Integrations", "Description" : "A package for the integrations team"};
this.dispatch('add', payload);
}然后,此函数将一个操作分派到我的redux-store.html,在那里我可以确认我可以使用console.log查看对象。
然后在我的redux-store.html中运行以下代码:
const reducer = (state, action) => {
switch (action.type) {
case 'UPDATE_PACKAGE':
const payload = action.newdata;
console.log(payload);
return Object.assign({}, state, { payload });
}
};
const store = Redux.createStore(reducer);
const ReduxMixin = PolymerRedux(store);根据我的理解(通过在线阅读),我应该能够从另一个名为data-model.html的html文件访问这个数组。此文件中的脚本块如下所示:
class DataModel extends ReduxMixin(Polymer.Element) {
static get is() { return 'data-model'; }
static get properties() {
return {
payload: {
type: Array,
statepath: 'payload'
}
};
}
}
customElements.define(DataModel.is, DataModel);在这个文件的模板标记中,我有以下代码:
<h1>data model [[payload]]</h1>我认为这应该是显示来自第一个html文件的数组,但它只显示“数据模型”。我已经尝试在console.log -Model.html中使用它,但是redux似乎没有从redux存储中提取任何数据。
我已经检查了我所有的导入路径,并检查了拼写错误,但我无法找出为什么这不起作用。任何建议都是值得感谢的。
发布于 2018-04-18 16:54:14
解决这个问题的方法是微不足道的(我怀疑可能是这样)。在statePath上需要一个大写的P!
无论如何,感谢所有人的帮助
https://stackoverflow.com/questions/49881199
复制相似问题