fix(Swipe): active may outrange when initialize (#8061)

This commit is contained in:
neverland 2021-02-02 19:58:15 +08:00 committed by GitHub
parent 1644fc1338
commit 8ac3f43189
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 5 deletions

View File

@ -81,12 +81,10 @@ export default createComponent({
const resize = () => { const resize = () => {
if (swipeRef.value) { if (swipeRef.value) {
const { startPosition } = props;
swipeRef.value.state.active = +startPosition;
swipeRef.value.resize();
const rect = swipeRef.value.$el.getBoundingClientRect(); const rect = swipeRef.value.$el.getBoundingClientRect();
state.rootWidth = rect.width; state.rootWidth = rect.width;
state.rootHeight = rect.height; state.rootHeight = rect.height;
swipeRef.value.resize();
} }
}; };

View File

@ -244,6 +244,8 @@ export default createComponent({
const rect = useRect(root); const rect = useRect(root);
active = Math.min(children.length - 1, active);
state.rect = rect; state.rect = rect;
state.swiping = true; state.swiping = true;
state.active = active; state.active = active;
@ -381,8 +383,7 @@ export default createComponent({
watch( watch(
() => children.length, () => children.length,
() => { () => {
const active = Math.min(children.length - 1, state.active); initialize(state.active);
initialize(active);
} }
); );