0
我試着保存一個數組,我試圖按照文檔,但失敗慘敗。我應該如何寫它,以便它不會給我各種警告和錯誤。AsyncStorage反應本機保存數組
錯誤:
- 有一個[對象對象]當我嘗試設置的項目
- 得到了一個對象,而不是一個數組
- 試圖將分配給只讀屬性
- 預計一個字符串,得到一個數組
這裏是代碼: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})
}
額外注:該錯誤是對世博會應用在手機上Android和iOS的
提前謝謝!
'addNote()'是錯誤的。你應該認爲這個狀態是不可改變的。製作一份副本並修改副本,然後使用副本'setState'只複製一次。 –
我該怎麼做?請你能提供一些指導或代碼嗎?即時通訊仍然是這個 –
谷歌的菜鳥?這裏是[一](https://github.com/facebook/immutable-js/wiki/Immutable-as-React-state) –