React-native-snap-carousel: activeSlideAlignment nem sempre honrado

Criado em 22 dez. 2017  ·  3Comentários  ·  Fonte: meliorence/react-native-snap-carousel

CERTIFIQUE-SE DE LER E SEGUIR ESTE MODELO DE ATENÇÃO OU SEU PROBLEMA SERÁ ENCERRADO SEM AVISO PRÉVIO

Este é um relatório de bug ou uma solicitação de recurso?

Relatório de erro

Se você respondeu "Relatório de bug": md5-165e2a387b733406a7eda771a7c8598a Se você respondeu "Solicitação de recurso": md5-29b55dc5215329f94e9ef15ba9aea4d9

Você leu as diretrizes sobre o relatório de bug?

sim

Você leu a documentação na íntegra?

sim

Você se certificou de que seu problema ainda não foi relatado / resolvido?

acho que sim

O bug é específico para iOS ou Android? Ou pode ser reproduzido em ambas as plataformas?

Não testei no Android.

O bug é reproduzível em um ambiente de produção (não um de depuração)?

Sim, tem este aplicativo em testflight (modo de lançamento) e esse comportamento existe.

Se você não conseguiu reproduzir o bug no modo de produção, provavelmente tem a ver com as limitações do React Native (consulte ["Problemas conhecidos"] (https://github.com/archriss/react-native-snap-carousel / # problemas conhecidos)). Provavelmente, não poderemos fazer nada a respeito.

Você conseguiu reproduzir o bug no exemplo fornecido ?

(Escreva sua resposta aqui.)

Se você não conseguiu reproduzir o problema no exemplo, é provável que a culpa seja do seu código. Aproveite o tempo para importar seu código aos poucos, até descobrir o que está errado. Se você tiver certeza de que isso tem a ver com o plug-in, e não com o React Native ou seu próprio código, você pode continuar a preencher este modelo e postar um problema.

Meio Ambiente

Forneça informações sobre seu ambiente atual. No mínimo, deve incluir o seguinte: Ambiente: "react": "16.0.0", "react-native": "0.50.3", "react-native-snap-carousel": "^ 3.4.0 ", Plataforma de destino: iOS (8)

(Escreva sua resposta aqui.)

Passos para reproduzir

(Escreva seus passos aqui :)

  1. Defina activeSlideAlignment como 'center'
  2. Têm grande número de slides de itens (mais de 20),
  3. Comece o carrossel com firstItem> 10
  4. O primeiro item é alinhado à esquerda em vez de centralizado.

Comportamento esperado

Como você esperava que seu projeto se comportasse? Tudo bem se você não tiver certeza de que seu entendimento está correto. Apenas escreva o que você pensou que aconteceria.

Não importa quantos slides eu tenha, se activeSlideAlignment estiver 'centralizado', espero que o slide esteja centralizado na visualização (para que os slides anteriores e seguintes possam ser vistos).

Comportamento Real

Algo deu errado? Algo está quebrado ou não está funcionando como você esperava? Descreva esta seção em detalhes e anexe screencasts (ou capturas de tela), se possível. Não diga apenas "não funciona"!

* * * Isso deve dar a você o que você precisa

Aqui está um vídeo do projeto em que estou trabalhando e o bug em ação:

https://www.youtube.com/watch?v=DMq1Q1-RWus&feature=youtu.be

Aqui está um lanche. Leia os comentários no topo

https://snack.expo.io/@akyker20/react -native-snap-carousel-bug

Por último, só quero agradecer. Eu gosto muito desse projeto. Caras, vocês são incríveis!


Demonstração reproduzível

Compartilhe um projeto que reproduza o problema. Existem duas maneiras de fazer isso: * Crie um novo aplicativo usando https://snack.expo.io/ e tente reproduzir o problema nele. Isso é útil se você souber aproximadamente onde está o problema ou não puder compartilhar o código real. * Ou copie seu aplicativo e remova coisas até que você tenha a demonstração reproduzível mínima. Isso é útil para encontrar a causa raiz. Você pode então criar um Lanche. Este é um bom guia para criar demonstrações de bugs: https://stackoverflow.com/help/mcve Quando terminar, copie e cole o link para o Snack ou um repositório GitHub público abaixo:

(Cole o link para um projeto de exemplo ou cole todo o código-fonte relevante. Em seguida, forneça instruções para reproduzir o problema.)

O que acontece se você pular esta etapa? Alguém lerá seu relatório de bug e talvez possa ajudá-lo, mas é improvável que ele receba muita atenção da equipe. Eventualmente, o problema provavelmente será resolvido em favor de problemas que têm demos reproduzíveis. Lembre-se de que: md5-7b7218219ccceda9f3001f0a0f77f0ed Obrigado por nos ajudar a ajudá-lo!
* react-native bug

Comentários muito úteis

Acabei de ter uma ideia e tentei substituir o initialNumToRender padrão definindo-o como 30 . Resultado: funciona! Isso significa que o problema é, como eu temia, FlatList one e que não tenho controle sobre esse comportamento. Parece que o componente FlatList não consegue controlar adequadamente os itens que não estão no lote renderizado atualmente ...

Essas são as opções que vejo neste momento:

  • Defina useScrollView como true . Observe que você perderá todas as FlatList otimizações ao fazer isso e tenha em mente que não é uma solução viável se você tiver um grande conjunto de dados para exibir .
  • Use um componente FlatList vez de Carousel one (você pode reutilizar adereços data e renderItem ). Você ainda tem o problema? Se a resposta for não, por favor me avise porque isso pode indicar que alguns FlatList padrões devem ser mantidos inalterados ...
  • Jogue com os seguintes FlatList props até encontrar algo que atenda às suas necessidades: initialNumToRender , maxToRenderPerBatch , windowSize e updateCellsBatchingPeriod .
  • Ore para que a equipe do Facebook, algum dia, conserte todos esses problemas ridículos ...

Todos 3 comentários

Olá @ akyker20 ,

Obrigado por colocar um relatório de bug de alta qualidade!

Em relação ao problema, isso é realmente muito estranho. Temo um bug interno FlatList , mas vou cavar para descobrir o que realmente está em jogo. Provavelmente poderei mantê-lo informado na próxima semana.

Aliás, parabéns pelo seu app; Parece incrível ;-)

Olá @ akyker20 ,

Você pode me dizer se você ainda é capaz de reproduzir o problema ao usar o último commit do branch v3.5.0 e definir a nova proposta useScrollView para true ? Estou tentando determinar se este é um bug específico de FlatList ...

Se necessário, você pode dar uma olhada nesta nota sobre o uso de um commit ainda não publicado no npm.

Acabei de ter uma ideia e tentei substituir o initialNumToRender padrão definindo-o como 30 . Resultado: funciona! Isso significa que o problema é, como eu temia, FlatList one e que não tenho controle sobre esse comportamento. Parece que o componente FlatList não consegue controlar adequadamente os itens que não estão no lote renderizado atualmente ...

Essas são as opções que vejo neste momento:

  • Defina useScrollView como true . Observe que você perderá todas as FlatList otimizações ao fazer isso e tenha em mente que não é uma solução viável se você tiver um grande conjunto de dados para exibir .
  • Use um componente FlatList vez de Carousel one (você pode reutilizar adereços data e renderItem ). Você ainda tem o problema? Se a resposta for não, por favor me avise porque isso pode indicar que alguns FlatList padrões devem ser mantidos inalterados ...
  • Jogue com os seguintes FlatList props até encontrar algo que atenda às suas necessidades: initialNumToRender , maxToRenderPerBatch , windowSize e updateCellsBatchingPeriod .
  • Ore para que a equipe do Facebook, algum dia, conserte todos esses problemas ridículos ...
Esta página foi útil?
0 / 5 - 0 avaliações