2017-08-24 13 views
0

Ich habe versucht, DatePickerIOS Daten mit Redux speichern. Gibt es eine Möglichkeit, AsyncStorage zu verwenden? Ich habe bisher ohne Glück versucht. Gibt es Vorschläge zur Verwendung von AsyncStorage mit einer einfachen DatePickerIOS-Komponente?reagieren nativ - DatePickerIOS mit AsyncStorage

<DatePickerIOS 
    style={{ paddingTop: 110 }} 
    mode='date' 
    date={this.state.d} 
    onDateChange={(d) => this.onDateChange(d)} 
/> 

constructor(props) { 
this.state = { date: newDate() }; 
} 

onDateChange(d) { 
this.setState({ 
    d: d 
}); 

Antwort

0

Sie setzen den Zustand für die d Variable in onDateChange aber Sie verwenden, um die startDate Variable in der DatePickerIO S. bei dieser Werfen Sie einen Blick, nicht in App getestet haben sollten aber funktionieren.

export class PickerIOS extends React.Component { 
    constructor() { 
    super(); 
    this.state = { 
     pickedDate: null 
    } 
    } 

    componentWillMount() { 
    getData('date') 
    .then((date) => { 
     if (date != null) 
     this.setState({pickedDate: date}) 
     else 
     this.setState({pickedDate: new Date()}) 
    }) 
    } 

    onDateChange(date) { 
    setData('date', date) 
    this.setState({pickedDate: date}) 
    } 

    render() { 
    return (
    <DatePickerIOS 
     mode='date' 
     date={this.state.pickedDate} 
     onDateChange={(date) => this.onDateChange(date)} 
     /> 
    ); 
    } 
} 

und dann, für die Code-Organisation, in einer anderen Datei:

setData(key, data) { 
    try { 
    await AsyncStorage.setItem(key, data); 
    } catch (error) { 
     // Error saving data 
    } 
} 

getData(key) { 
    try { 
    const value = await AsyncStorage.getItem(key); 
    if (value !== null){ 
     return value 
    } 
    } catch (error) { 
    // Error retrieving data 
    } 
} 
+0

möchte ich die Daten auf Seite aktualisieren oder Navigation anhalten. Deshalb wollte ich AsyncStorage. Das 'd' und 'startdate' war ein Tippfehler. Ich werde das ändern. – wizardo

+0

Schauen Sie sich meine Bearbeitung an, alle Informationen finden Sie hier https://facebook.github.io/react-native/docs/asyncstorage.html – Poptocrack

+0

Danke für die Hilfe :) – wizardo