本机反应 - 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
});
答
您设置在onDateChange
的d
变量的状态,但是你用在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
}
}
我想要的数据持久化的页面刷新或导航。这就是我想要AsyncStorage的原因。 'd'和'startdate'是一个错字。我会改变这一点。 – wizardo
看看我的编辑,所有的信息可以在这里找到https://facebook.github.io/react-native/docs/asyncstorage.html – Poptocrack
感谢您的帮助:) – wizardo