Después de actualizar a react-native 0.61, recibo muchas advertencias como esta:
VirtualizedLists should never be nested inside plain ScrollViews with the same orientation - use another VirtualizedList-backed container instead.
¿Cuál es el otro VirtualizedList-backed containerque debo usar, y por qué ahora se recomienda no usar así?
javascript
reactjs
react-native
David Schilling
fuente
fuente

Respuestas:
Si alguien todavía está buscando una sugerencia sobre el problema que @Ponleu y @David Schilling han descrito aquí (con respecto al contenido que va por encima de la lista plana), entonces este es el enfoque que tomé:
Puede leer más sobre esto aquí: https://facebook.github.io/react-native/docs/flatlist#listheadercomponent
Esperemos que ayude a alguien. :)
fuente
ScrollViewyFlatList- obtendrá un comportamiento de desplazamiento inconsistente. La forma presentada en esta respuesta da como resultado solo 1 contenedor de desplazamiento y en Encabezado / Pie de página puede poner cualquier vista, sin importar cuán compleja sea.useMemogancho provisto por React, para evitar re-renderizaciones. Más información aquí: reactjs.org/docs/hooks-reference.html#usememo Déjame si es útil. :)En caso de que esto ayude a alguien, así es como solucioné el error en mi caso.
Tenía un
FlatListanidado dentro de unScrollView:y me deshice del
ScrollViewuso deFlatListpara renderizar todo lo que necesitaba, lo que eliminó la advertencia:fuente
Mirando los ejemplos en documentos he cambiado el contenedor de:
a:
y todas esas advertencias desaparecieron.
fuente
FlatListinteriorScrollViewy quiero que ese contenido sea desplazable?ScrollViewdentro de ese contenido y luegoFlatListtambién dentroScrollView. Y quiero que toda la pantalla se desplace juntos.En mi opinión, puedo usar el mapa en lugar de FlatList. Pero en mi caso no quiero mostrar una lista grande. No usar FlatList puede causar problemas de rendimiento. así que usé esto para suprimir la advertencia https://github.com/GeekyAnts/NativeBase/issues/2947#issuecomment-549210509
fuente
La advertencia aparece porque
ScrollViewyFlatListcomparte la misma lógica, si seFlatListejecuta dentroScrollView, está duplicadaPor cierto
SafeAreaViewno funciona para mí, la única forma de resolver esEl error desaparece
fuente
Intenté algunas formas de resolver esto, incluyendo
ListHeaderComponentoListFooterComponent, pero no me quedó bien.El diseño que quería lograr es así, y quería que me desplazaran una vez.
Primero quiero agradecer este problema y comentarios, que me dieron muchas ideas.
Estaba pensando en
ListHeaderComponentlugares sobre la lista plana, pero comoFlatlistla dirección de mi era la columna, el encabezado que quería colocar estaba a la izquierda deFlatlist:(Luego tuve que probarme
VirtualizedList-backedalgo. Solo intenté empaquetar todos los componentesVirtualizedList, donderenderItemsda índice y allí podría pasar componentes condicionalmenterenderItems.Podría haber trabajado con esto
Flatlist, pero aún no lo he intentado.Finalmente se ve así.
y, por supuesto, capaz de desplazar toda la pantalla.
fuente
Este problema viene cuando está usando
<FlatList />adentro<ScrollView>con la misma orientación.Para solucionar esto, simplemente agregue "horizontal" a su FlatList:
NB: su FlatList se representará horizontalmente
fuente