Анимировано: `useNativeDriver` не указан. Это обязательная опция и должна быть явно установлена ​​на `true` или` false` #31

Я использую React-Native-Draggable-View, чтобы добавить ползунок в свое приложение, но каждый раз, когда я касаюсь ползунка, появляется указанная выше ошибка. При устранении неполадок он утверждает, что имеет какое-то отношение к анимации / анимированному представлению, но у меня нет анимированного представления в моем коде. Я углубился в документацию, и там нет упоминания о необходимости анимированного представления. Я использовал хуки, а в документах используется формат класса, поэтому я изо всех сил пытаюсь определить, где и как я его реализую. Ниже то, что у меня есть на данный момент.

      import React, { useState, useEffect, Component }from "react";
import {Alert, Dimensions, Platform, StyleSheet, Text, View, Button, TouchableOpacity, TouchableHighlight, SafeAreaView, ScrollView, ActivityIndicator, StatusBar} from "react-native";
import {ListScreen} from './ListScreen
import {CheckScreen} from './CheckScreen'
import Drawer from 'react-native-draggable-view'



function RunningScreen({navigation}) {
...

return(

...


<Drawer
    initialDrawerSize={0.3}
    finalDrawerHeight={0.5}

    //autoDrawerUp={0.5}
    renderContainerView={() => (
      <ListScreen navigation = {navigation} 

      
      />
    )}
    renderDrawerView={() => (
      
      <RunningScreen navigation = {navigation} />
    )}
      renderInitDrawerView={() => (
        <View style = {{alignItems: 'center'}}>
        <View style={{backgroundColor: '#d3d3d3', height: height*0.01, width: width*0.2, alignItems: 'center'}}>
        <StatusBar hidden={false} />
        </View>
        </View>

  )}

/>
    )
    }

...

export {RunningScreen}

3 ответа

Вы используете библиотеку «response-native-draggable-view», которая не имеет useNativeDriver true или false. Поэтому вам нужно открыть библиотеку и применить «useNativeDriver: false» в Animated.timing.

Перед :

       Animated.timing(position, {
        toValue: endPosition,
        tension: 30,
        friction: 0,
        velocity: velocityY
    }).start();

После :

       Animated.timing(position, {
        toValue: endPosition,
        tension: 30,
        friction: 0,
        velocity: velocityY,
        useNativeDriver: false
    }).start();

Вы видите это, потому что react-native-draggable-viewне обновлялся в течение 3 лет, и вы используете более новую версию react-native. В частности,> 0,62, где указано useNativeDriverнеобходимо. Я предполагаю, что это оскорбление Animated.timingзвонок из библиотеки. Я бы отредактировал этот блок из node_modules/react-native-draggable-view/index.js быть

      Animated.timing(position, {
  toValue: endPosition,
  tension: 30,
  friction: 0,
  velocity: velocityY,
  useNativeDriver: false,
}).start();

и посмотрите, исчезнет ли ошибка. Если это так, вы можете исправить пакет, чтобы включить это исправление. Вы можете пропатчить патч-пакетом или пряжей, если используете пряжу v2.

      <Carousel
    layout={'tinder'}
    autoplay
    autoplayTimeout={5000}
    loop
    index={0}
    pageSize={BannerWidth}
>
    {images.map((image, index) => this.renderPage(image, index))}
</Carousel>
Другие вопросы по тегам