Асинхронное хранилище React native сохранение данных через форму

#react-native #asyncstorage

#реагировать-родной #asyncstorage

Вопрос:

У меня есть это data.js файл, в котором я храню некоторые данные :

   export const data = [
  {
    id: '1',
    title: 'first item',
    description: `my first item`,
  },
  {
    id: '2',
    title: 'Second item',
    description: `my second item`,
  },
];
 

И это форма добавления связанной формы с асинхронным хранилищем в react native, когда пользователь вводит некоторые параметры в форму, которую он должен добавить в data.js файл, но не работает, когда я тестировал так много раз и не мог увидеть свою ошибку :

 import data from './model/data';
import {AsyncStorage}from '@react-native-community/async-storage';
import React, {Component} from 'react';  
import {Platform, StyleSheet, Text,  
  View,TouchableOpacity,  
} from 'react-native';  
  
export default class addPoint {  
  saveData(){  
    AsyncStorage.setItem(description,data.description);  
    AsyncStorage.setItem(title,data.title); 
  }  

  render() {  
    return (  
      <View style={styles.container}>  
        
        <Input placeholder=" Type your item title:" 
             onChangeText={(title) => this.setState({title})}
             value={title} /> 
        <Input placeholder=" Type your item description:" 
             onChangeText={(description) => this.setState({description})}
             value={description} />
          
        <TouchableOpacity onPress ={this.saveData}> 
        <Text>Click to save data</Text> 
        </TouchableOpacity>   
      </View>  
    );  
  }  
}  
  
const styles = StyleSheet.create({  
  container: {  
    flex: 1,  
    justifyContent: 'center',  
    alignItems: 'center',  
    backgroundColor: '#F5FCFF',  
  },  
});
 

Пожалуйста, вы можете помочь мне определить проблему? И заранее благодарю вас

Комментарии:

1. Попробуйте изменить export default class addPoint export default class addPoint extends Component и привязать this к SaveData в constructor . Ваш конструктор класса должен выглядеть следующим образом. constructor(props){ super(props); this.saveData = this. saveData.bind(this); }

2. Большое спасибо за вашу помощь, я изменил экспорт, как вы предложили, и добавил конструктор сразу после функции SaveData внутри класса addPoint это нормально?

3. Да, это должно сработать.

4. Большое спасибо, я сейчас тестирую, надеюсь, на этот раз это сработает