J'ai créé un nouveau projet natif de réaction aujourd'hui (3 avril 2020) et ajouté une base native. Ensuite, j'ai essayé d'ajouter une entrée avec une étiquette flottante. Il donne un message d'avertissement: Animé: useNativeDriver
n'a pas été spécifié. Cette option est obligatoire et doit être explicitement définie sur true
ou false
. Si j'ai supprimé l'attribut floatingLabel ou l'ai changé en stackedLabel, l'avertissement a disparu. Pendant que cet avertissement apparaît, onChangeText
n'est pas appelé.
Le fichier du composant.
import React from 'react';
import {
SafeAreaView,
ScrollView,
StatusBar,
StyleSheet,
View,
} from 'react-native';
import {Input, Item, Label} from 'native-base';
import {Colors} from 'react-native/Libraries/NewAppScreen';
declare var global: {HermesInternal: null | {}};
const App = () => {
return (
<>
<StatusBar barStyle="dark-content" />
<SafeAreaView>
<ScrollView
contentInsetAdjustmentBehavior="automatic"
style={styles.scrollView}>
<View style={styles.body}>
<Item floatingLabel>
<Label>Test</Label>
<Input onChangeText={text => console.log(text)} />
</Item>
</View>
</ScrollView>
</SafeAreaView>
</>
);
};
package.json
{
"name": "formtest",
"version": "0.0.1",
"private": true,
"scripts": {
"Android": "react-native run-Android",
"ios": "react-native run-ios",
"start": "react-native start",
"test": "jest",
"lint": "eslint . --ext .js,.jsx,.ts,.tsx"
},
"dependencies": {
"native-base": "^2.13.12",
"react": "16.11.0",
"react-native": "0.62.0"
},
"devDependencies": {
"@babel/core": "^7.6.2",
"@babel/runtime": "^7.6.2",
"@react-native-community/eslint-config": "^1.0.0",
"@types/jest": "^24.0.24",
"@types/react-native": "^0.62.0",
"@types/react-test-renderer": "16.9.2",
"@TypeScript-eslint/eslint-plugin": "^2.25.0",
"@TypeScript-eslint/parser": "^2.25.0",
"babel-jest": "^24.9.0",
"eslint": "^6.5.1",
"jest": "^24.9.0",
"metro-react-native-babel-preset": "^0.58.0",
"react-test-renderer": "16.11.0",
"prettier": "^2.0.2",
"TypeScript": "^3.8.3"
},
"jest": {
"preset": "react-native",
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx",
"json",
"node"
]
}
}
recherchez simplement animated.timing sur le dossier ~\node_modules\native-base\dist\src\basic\et ajoutez manuellement useNativeDriver: true ou false
Il s'agira principalement de trouver toutes les instances de Animated.timing ou Animated.spring et d'ajouter useNativeDriver: true à la configuration.