本机反应 - DatePickerIOS与AsyncStorage

问题描述:

我试着用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 
}); 

您设置在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