react-native - 使用 React Native 上 ScrollView 中的 onScroll 事件更新值
问题描述
我正在尝试更新/获取 ScrollView 中的值,如下代码:
<SafeAreaView style={styles.container}>
<ScrollView
contentContainerStyle={{ flexGrow: 1 }}
style={styles.scrollView}
onScroll={(event) => {
const currentOffset = event.nativeEvent.contentOffset.y;
urlx = currentOffset > 100 ? url1 : url2;
log(urlx);
}}
>
<Text>{urlx}</Text>
</ScrollView>
</SafeAreaView>;
当滚动事件发生时,文本不会更新为新的 urlx 值。
如何从文本强制执行此更新?
解决方案
只需将 urlx 置于组件的状态:
const [urlx, setUrlx] = useState()
然后像这样更新urlx:
<SafeAreaView style={styles.container}>
<ScrollView
contentContainerStyle={{ flexGrow: 1 }}
style={styles.scrollView}
onScroll={(event) => {
const currentOffset = event.nativeEvent.contentOffset.y;
urlx = currentOffset > 100 ? url1 : url2;
setUrlx(urlx) // here
}}
>
<Text>{urlx}</Text>
</ScrollView>
</SafeAreaView>;
您必须使用useState的原因是因为在状态更新时,react 会使用新值更新您的组件
推荐阅读
- pandas - 将列值重塑为最后带有标识符列的行
- function - 函数重载两个函数只有一个默认参数不同
- haskell - 关于 LYAH 中教授的 Writer monad 的问题。(附加到日志是如何发生的?)
- javascript - Puppeteer:搜索内部文本不区分大小写
- javascript - 如何在 keycloak 的 ftl 文件中包含 React js 文件?
- c++ - 如何使用 wxwidget 在 libvlc 上绘制徽标或任何图形?
- python - 获取具有特定文本或条件的行(以及之前和之后的一些行)
- mongodb - 如何修复MongoDB中的组和总和?
- angular - Angular 获取 JSON 作为地图
- javascript - 如何解决未定义业力角4的本机元素