Skip to content

Commit aa864df

Browse files
nishino-tsukasaGcaufy
authored andcommitted
fix(redux): 多实例的情况
1 parent 141cd0e commit aa864df

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

packages/redux/helper.js

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export const mapState = function (states) {
2222
: state[val];
2323

2424
// 利用 redux state 每次改变都会返回一个新 state 的特性,只需做引用比较
25+
const resValueMap = res[key][this.$id]
2526
if (resValueMap[key].value !== value) {
2627
resValueMap[key] = Object.preventExtensions({ value });
2728
}

packages/redux/install.js

+12-8
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,22 @@ export default function wepyInstall (wepy) {
1616
}
1717
const { computed } = this.$options;
1818
const keys = Object.keys(computed);
19+
let resValueMap
1920
for (let i = 0; i < keys.length; i++) {
2021
if ('resValueMap' in computed[keys[i]]) {
21-
wepy.observe({
22-
vm: this,
23-
key: '',
24-
value: computed[keys[i]].resValueMap,
25-
parent: '',
26-
root: true
27-
});
28-
break;
22+
if (!resValueMap) {
23+
resValueMap = {...computed[keys[i]].resValueMap}
24+
}
25+
computed[keys[i]][this.$id] = resValueMap
2926
}
3027
}
28+
wepy.observe({
29+
vm: this,
30+
key: '',
31+
value: resValueMap,
32+
parent: '',
33+
root: true
34+
});
3135
}
3236
},
3337

0 commit comments

Comments
 (0)