2017-08-24 90 views
0

我試着用redux存儲DatePickerIOS日期。 有沒有辦法使用AsyncStorage?到目前爲止,我一直在努力嘗試。有沒有關於如何通過簡單的DatePickerIOS組件使用AsyncStorage的建議?本機反應 - DatePickerIOS與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 
}); 

回答

0

您設置在onDateChanged變量的狀態,但是你用在DatePickerIO S的startDate變量 看看這個,在應用程序,但應該工作沒有進行測試。

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)} 
     /> 
    ); 
    } 
} 

,然後,對代碼組織,在另一個文件:

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

我想要的數據持久化的頁面刷新或導航。這就是我想要AsyncStorage的原因。 'd'和'startdate'是一個錯字。我會改變這一點。 – wizardo

+0

看看我的編輯,所有的信息可以在這裏找到https://facebook.github.io/react-native/docs/asyncstorage.html – Poptocrack

+0

感謝您的幫助:) – wizardo