Skip to content

Commit f099444

Browse files
二一7insummer
authored andcommitted
fix:修复动态设置数据时数据更新问题 (#325)
1 parent f57cb9d commit f099444

File tree

8 files changed

+106
-15
lines changed

8 files changed

+106
-15
lines changed

dist/segment-item/index.js

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ Component({
99
relations: {
1010
'../segment/index': {
1111
type: 'parent',
12-
linked() {},
13-
unlinked() {}
12+
linked() { },
13+
unlinked() { }
1414
},
1515
},
1616

@@ -24,7 +24,12 @@ Component({
2424
value: 'top'
2525
},
2626
dotBadge: Boolean,
27-
badgeCount: Number,
27+
badgeCount: {
28+
type: Number,
29+
observe: function (newVal, oldVal) {
30+
console.log(newVal, oldVal)
31+
}
32+
},
2833
badgeMaxCount: {
2934
type: Number,
3035
value: 99
@@ -34,7 +39,11 @@ Component({
3439
value: 'overflow'
3540
},
3641
},
37-
42+
observers: {
43+
'**': function (filed) {
44+
this.updateData(filed)
45+
}
46+
},
3847
/**
3948
* 组件的初始数据
4049
*/
@@ -44,6 +53,21 @@ Component({
4453
* 组件的方法列表
4554
*/
4655
methods: {
56+
updateData(filed) {
57+
let parent = this.getRelationNodes('../segment/index')[0];
58+
if (!parent) return;
59+
const tabList = parent.data.tabList;
60+
if (!(tabList && tabList.length > 0)) return;
61+
const index = tabList.findIndex(tab => tab.key === this.data.key)
62+
tabList[index] = filed;
63+
parent.setData({
64+
tabList: tabList
65+
}, () => {
66+
if (parent.data.scrollable) {
67+
parent.queryMultipleNodes();
68+
}
69+
})
4770

71+
},
4872
}
4973
})

dist/tabpanel/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Component({
2525
value:'top'
2626
},
2727
},
28+
2829

2930
/**
3031
* 组件的初始数据
@@ -33,4 +34,8 @@ Component({
3334
isCurrent: false,
3435
index:0,
3536
},
37+
38+
methods:{
39+
40+
}
3641
})

examples/dist/segment-item/index.js

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ Component({
99
relations: {
1010
'../segment/index': {
1111
type: 'parent',
12-
linked() {},
13-
unlinked() {}
12+
linked() { },
13+
unlinked() { }
1414
},
1515
},
1616

@@ -24,7 +24,12 @@ Component({
2424
value: 'top'
2525
},
2626
dotBadge: Boolean,
27-
badgeCount: Number,
27+
badgeCount: {
28+
type: Number,
29+
observe: function (newVal, oldVal) {
30+
console.log(newVal, oldVal)
31+
}
32+
},
2833
badgeMaxCount: {
2934
type: Number,
3035
value: 99
@@ -34,7 +39,11 @@ Component({
3439
value: 'overflow'
3540
},
3641
},
37-
42+
observers: {
43+
'**': function (filed) {
44+
this.updateData(filed)
45+
}
46+
},
3847
/**
3948
* 组件的初始数据
4049
*/
@@ -44,6 +53,21 @@ Component({
4453
* 组件的方法列表
4554
*/
4655
methods: {
56+
updateData(filed) {
57+
let parent = this.getRelationNodes('../segment/index')[0];
58+
if (!parent) return;
59+
const tabList = parent.data.tabList;
60+
if (!(tabList && tabList.length > 0)) return;
61+
const index = tabList.findIndex(tab => tab.key === this.data.key)
62+
tabList[index] = filed;
63+
parent.setData({
64+
tabList: tabList
65+
}, () => {
66+
if (parent.data.scrollable) {
67+
parent.queryMultipleNodes();
68+
}
69+
})
4770

71+
},
4872
}
4973
})

examples/dist/tabpanel/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Component({
2525
value:'top'
2626
},
2727
},
28+
2829

2930
/**
3031
* 组件的初始数据
@@ -33,4 +34,8 @@ Component({
3334
isCurrent: false,
3435
index:0,
3536
},
37+
38+
methods:{
39+
40+
}
3641
})

examples/pages/components/nav/pages/segment/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ Page({
5959
defaultImage: '/pages/components/nav/images/tab-icon/bathroom.png',
6060
}
6161
}
62-
]
62+
],
63+
brageCount:5
6364
},
6465

6566
changeTabs(e) {
@@ -101,7 +102,6 @@ Page({
101102
* Lifecycle function--Called when page show
102103
*/
103104
onShow: function () {
104-
105105
},
106106

107107
/**

examples/pages/components/nav/pages/segment/index.wxml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@
3535
<l-segment-item tab="卫生清洁" key="eight">
3636
<view class="tab-content">卫生清洁</view>
3737
</l-segment-item>
38+
<l-segment-item tab="客厅" key="123" />
39+
<l-segment-item tab="卧室" key="456" />
40+
<l-segment-item tab="厨房" key="789" />
41+
<l-segment-item tab="浴室" key="1011" />
3842
</l-segment>
3943
</content-card>
4044

@@ -73,7 +77,7 @@
7377
<content-card l-content="content" name="徽标选项卡">
7478
<l-segment active-key="one" bind:linchange="changeTabs">
7579
<l-segment-item tab="客厅" key="one" dot-badge="{{true}}"/>
76-
<l-segment-item tab="卧室" key="two" badge-count="97"/>
80+
<l-segment-item tab="卧室" key="two" badge-count="{{brageCount}}"/>
7781
<l-segment-item tab="厨房" key="three" badge-count="900" l-class-badge="badge-view"/>
7882
<l-segment-item tab="浴室" key="four" />
7983
</l-segment>

src/segment-item/index.js

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ Component({
99
relations: {
1010
'../segment/index': {
1111
type: 'parent',
12-
linked() {},
13-
unlinked() {}
12+
linked() { },
13+
unlinked() { }
1414
},
1515
},
1616

@@ -24,7 +24,12 @@ Component({
2424
value: 'top'
2525
},
2626
dotBadge: Boolean,
27-
badgeCount: Number,
27+
badgeCount: {
28+
type: Number,
29+
observe: function (newVal, oldVal) {
30+
console.log(newVal, oldVal)
31+
}
32+
},
2833
badgeMaxCount: {
2934
type: Number,
3035
value: 99
@@ -34,7 +39,11 @@ Component({
3439
value: 'overflow'
3540
},
3641
},
37-
42+
observers: {
43+
'**': function (filed) {
44+
this.updateData(filed)
45+
}
46+
},
3847
/**
3948
* 组件的初始数据
4049
*/
@@ -44,6 +53,21 @@ Component({
4453
* 组件的方法列表
4554
*/
4655
methods: {
56+
updateData(filed) {
57+
let parent = this.getRelationNodes('../segment/index')[0];
58+
if (!parent) return;
59+
const tabList = parent.data.tabList;
60+
if (!(tabList && tabList.length > 0)) return;
61+
const index = tabList.findIndex(tab => tab.key === this.data.key)
62+
tabList[index] = filed;
63+
parent.setData({
64+
tabList: tabList
65+
}, () => {
66+
if (parent.data.scrollable) {
67+
parent.queryMultipleNodes();
68+
}
69+
})
4770

71+
},
4872
}
4973
})

src/tabpanel/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Component({
2525
value:'top'
2626
},
2727
},
28+
2829

2930
/**
3031
* 组件的初始数据
@@ -33,4 +34,8 @@ Component({
3334
isCurrent: false,
3435
index:0,
3536
},
37+
38+
methods:{
39+
40+
}
3641
})

0 commit comments

Comments
 (0)