J'ai essayé d'enregistrer un tableau, j'ai essayé de suivre la documentation, mais a lamentablement échoué. Comment dois-je l'écrire afin qu'il ne me donne pas divers avertissements et erreurs.AsyncStorage React Native enregistrer un tableau
Erreurs:
- obtenu un [objet Object] lorsque je tente de définir l'élément
- Vous avez un objet au lieu d'un tableau
- Tentative d'affecter à lire la propriété ne
- attendu une chaîne, a obtenu un tableau
Voici le code: App.js
import React from 'react';
import { StyleSheet, Text, View, TextInput, ScrollView, TouchableOpacity, KeyboardAvoidingView, AsyncStorage } from 'react-native';
import Note from './app/components/note';
export default class App extends React.Component {
state = {
noteArray: [],
noteText: '',
}
render() {
let notes = this.state.noteArray.map((val, key) => {
return <Note key={key} keyval={key} val={val} deleteMethod={()=>this.deleteNote(key) } />
});
return (
<KeyboardAvoidingView behavior="padding" style={styles.container}>
<View style={styles.header}>
<Text style={styles.headerText}>Tasker</Text>
</View>
<ScrollView style={styles.scrollContainer}>
{notes}
</ScrollView>
<View style={styles.footer}>
<TouchableOpacity onPress={this.addNote.bind(this)} style={styles.addButton}>
<Text style={styles.addButtonText}>+</Text>
</TouchableOpacity>
<TextInput style={styles.textInput} placeholder='Enter Task...' placeholderTextColor='white'
underlinedColorAndroid='transparent' onChangeText={(noteText) => this.setState({noteText})}
value={this.state.noteText}></TextInput>
</View>
</KeyboardAvoidingView>
);
}
addNote() {
if (this.state.noteText) {
var d = new Date();
this.state.noteArray.push({'date' : d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate(), 'note' : this.state.noteText});
this.setState({noteArray: this.state.noteArray});
this.setState({ noteText: '' });
}
//AsyncStorage.setItem() How do I write it so no errors occur
alert({noteArray: this.state.noteArray})
}
Remarque supplémentaire: L'erreur est sur App Expo sur mon téléphone Android et iOS
Merci à l'avance!
'addNote()' est incorrect. Vous devriez considérer «cet état» comme immuable. Faites-en une copie et modifiez la copie, puis 'setState' avec la copie une seule fois. –
comment je fais ça? s'il vous plaît pouvez-vous me fournir un guide ou un code? Im toujours un noob à ce –
Google? Voici [un] (https://github.com/facebook/immutable-js/wiki/Immutable-as-React-state) –