FlashList TextInput: Focus/Text Duplication on Scroll
I maintainer di solito rispondono entro 18 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- react-native, typescript
- Ambito
- mobile
Direzione di ricerca
Inizia eseguendo la riproduzione collegata di Expo Snack con FlashList 2.2.0 su iOS e Android, concentrandoti sul dare il focus e digitare nell’ultimo TextInput prima dello scorrimento. Traccia il comportamento di riciclo di TextInput di FlashList; il lavoro è completato quando il focus e il testo digitato rimangono associati esclusivamente all’elemento selezionato durante lo scorrimento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Current behavior
I have rendered a list of 40 TextInput fields. When I focus or typed on the last TextInput and scroll up, I notice that the focus and typed text is also applied to the first rendered TextInput.
"@shopify/flash-list": "^2.2.0",
"expo": "~54.0.20",
"react-native": "0.81.5",
Expected behavior
Focusing and typing in a TextInput within a long list should only affect the selected TextInput.
Reproduction
import { FlashList } from "@shopify/flash-list";
import React from "react";
import { StyleSheet, TextInput, View } from "react-native";
export default function App() {
const data = Array.from({ length: 40 }, (_, index) => ({
key: `${index}`,
question: `Question ${index + 1}`,
}));
// Render each TextInput
const renderItem = ({
item,
}: {
item: { key: string; question: string };
}) => (
<View style={styles.itemContainer}>
<TextInput style={styles.input} placeholder={item.question} />
</View>
);
return (
<View style={styles.container}>
<FlashList
data={data}
renderItem={renderItem}
keyExtractor={(item) => item.key}
/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
padding: 16,
},
itemContainer: {
marginBottom: 10,
},
input: {
height: 40,
borderColor: "gray",
borderWidth: 1,
paddingHorizontal: 8,
},
});
https://github.com/user-attachments/assets/cece34db-7fbc-4121-b4f6-e1e38c485ce8
Expo Snack or minimal reproduction link:
https://snack.expo.dev/@krishnank/shopify-flashlist-bug
Platform
- iOS
- Android
- Web (if applicable)
Environment
FlashList version: ^2.2.0
Checklist
- I've searched existing issues and couldn't find a duplicate
- I've provided a minimal reproduction (Expo Snack preferred)
- I'm using the latest version of @shopify/flash-list
- I've included all required information above
- Lingua principale
- TypeScript
- Stelle
- 7.2k
- Fork
- 401
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Shopify/flash-list
-
Types: FlashListProps imports ViewabilityConfig from react-native, removed in RN 0.87+Forse già presa @efegokdemir l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Shopify/flash-list#2540 ·
I maintainer di solito rispondono entro 18 giorni
-
StickyHeaders.compute() throws "index out of bounds, not enough layouts" — its guard checks getDataLength() but the binary search indexes the layout arrayForse già presa @YuEfSaEDU l’ha presa 46 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Shopify/flash-list#2509 · 1 commento ·
I maintainer di solito rispondono entro 18 giorni
-
v2: Android view flattening removes ViewHolderCollection's container, breaking row positions (missing contentContainerStyle padding + ListHeaderComponent offset)Forse già presa @wanxiankai l’ha presa 100 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Shopify/flash-list#2399 · 1 commento ·
I maintainer di solito rispondono entro 18 giorni
-
v2 `inverted` on react-native-web freezes virtualization (permanent blank list, onEndReached never fires): firstItemOffset measurement ignores the scaleY(-1) transformForse già presa @HuuNguyen312 l’ha presa 138 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Shopify/flash-list#2380 · 1 commento ·
I maintainer di solito rispondono entro 18 giorni
-
Stale ViewHolder onLayout can throw when its layout index no longer existsForse già presa @narumichi0710 l’ha presa 162 giorni fa. Apertaagent-triage P1
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Shopify/flash-list#2291 ·
I maintainer di solito rispondono entro 18 giorni
Tutte le issue di Shopify/flash-list
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 74/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
remotion-dev/remotion#12905 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
supermomonga/paseo-plugin-zcode-provider#83 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
oxidecomputer/skepsis#102 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
voidzero-dev/void#677 ·
I maintainer di solito rispondono entro 1 giorno