javascript - 删除数组/视图中的最后一项时,iOS 上的 react-native-viewpager 问题
问题描述
我可以从 android 上的 viewPager 中删除最后一个视图/项目,它会将视图切换到上一个屏幕。但同样的事情在 iOS 中不起作用。在 iOS 上,它会删除最后一个视图,但不会切换并显示空白页面,但是当您滚动旧视图时会再次呈现。
ViewPages.js
import React, { useState, useEffect } from "react";
import { Image, ScrollView } from "react-native";
import {
Container,
View,
Button,
Text,
Left,
Right,
Content,
Icon,
Header,
Fab
} from "native-base";
import { useTemplateState } from "../../../contexts/TemplateContext";
import {
useScreenTypeState,
useScreenTypeUpdate
} from "../../../contexts/ScreenTypeContext";
import CardView from "./CardView";
import ViewPager from "@react-native-community/viewpager";
export const ScreenTypeSelection = ({ route }) => {
let { screenCount } = useTemplateState();
let dispatch = useScreenTypeUpdate();
let value = useScreenTypeState();
const [active, setActive] = useState(false);
useEffect(() => {
dispatch({ type: "screen", payload: { screenCount } });
}, []);
const [currentIndex, setCurrentIndex] = useState(0);
const [currentPage, setCurrentPage] = useState(0);
return (
<ScrollView contentContainerStyle={{ flex: 1 }}>
<ViewPager
style={{ flex: 1 }}
initialPage={currentPage}
onPageSelected={e => setCurrentIndex(e.nativeEvent.position)}
showPageIndicator={true}
>
{value.length > 0 &&
value.map((card, index) => {
return (
<View style={{ alignItems: "center" }} key={index}>
<CardView key={card.pageNumber} card={card} />
</View>
);
})}
</ViewPager>
<Fab
active={active}
direction="up"
containerStyle={{}}
style={{ backgroundColor: "#5067FF" }}
position="bottomRight"
onPress={() => setActive(!active)}
>
<Icon name="create" />
<Button
style={{ backgroundColor: "#3B5998" }}
onPress={() => {
dispatch({
type: "delete_page",
payload: { currentIndex }
});
setCurrentPage(currentIndex - 1 < 0 ? 0 : currentIndex - 1);
}}
>
<Icon name="remove" />
</Button>
<Button
style={{ backgroundColor: "#34A34F" }}
onPress={() => {
dispatch({
type: "add_page",
payload: { currentIndex }
});
setCurrentPage(currentIndex + 1 )
}}
>
<Icon name="add" />
</Button>
</Fab>
</ScrollView>
);
};
包:@react-native-community/react-native-viewpager
Github:https ://github.com/react-native-community/react-native-viewpager
在做了一些研究后发现这是GitHub 上的一个开放问题
是否有任何解决方案或任何解决方法有助于在 iOS 上反映相同的功能?
我知道还有其他可用的第三方包,但我想看看我是否可以使用 react-native 核心模块来做到这一点。
如果需要更多细节,请告诉我。
解决方案
推荐阅读
- javascript - 如何在javascript中画一个十字
- javascript - 在美元托管控件中打开弹出窗口而不是新选项卡/窗口
- r - 导出到 Excel 时,函数 write.table() 将我的字符列转换为数字。我怎样才能防止这种情况?
- algorithm - Neo4j GDS 1.4.1 K 生成树的问题
- javascript - ES6 在类构造函数中定义 getter
- c# - 如何通过 Refit 和其他来源在 Web API 应用程序中将字典作为查询参数传递?
- kubernetes - 我可以在同一部署的不同副本中运行不同的命令吗?
- c# - 在 EF Core 和 ASP.NET Core 中处理并发的最佳实践?
- javascript - TypeError:无法使用 REDUX 读取 REACT 中未定义的属性“映射”
- android - FLutter 中的 Firebase 电话 OTP 身份验证