我正在关注ReactNative DatePickerAndroid Docs。对于DatePickerIOS,我们有onDateChange
方法。
有没有类似的方法可以从DatePickerAndroid中获取选定的日期?上面的文档没有提到任何代码示例来获取所选日期。
您可以从
给定的代码示例中获取showPicker方法中的选定日期:
showPicker = async (stateKey, options) => {
try {
var newState = {};
const {action, year, month, day} = await DatePickerAndroid.open(options);
if (action === DatePickerAndroid.dismissedAction) {
newState[stateKey + 'Text'] = 'dismissed';
} else {
// <<<< Newly selected date >>>>
var date = new Date(year, month, day);
newState[stateKey + 'Text'] = date.toLocaleDateString();
newState[stateKey + 'Date'] = date;
}
this.setState(newState);
} catch ({code, message}) {
console.warn(`Error in example '${stateKey}': `, message);
}
};
render() {
return (
<TouchableWithoutFeedback
onPress={this.showPicker.bind(this, 'spinner', { date: this.state.presetDate })}>
<View>
<Text style={styles.text}>Date selector</Text>
</View>
</TouchableWithoutFeedback>
)
}
正如我们在文档中看到的示例代码,创建一个异步函数,该函数将处理承诺数据,并将此函数触发到您的组件文本与onPress函数或TexInput与onFocus函数。 示例:
async _onMyDatePress(){
try {
const {action, year, month, day} = await DatePickerAndroid.open({
date: new Date()
});
if(action == DatePickerAndroid.dateSetAction){
console.log(year + ' ' + month + ' ' + day);
}
} catch ({code, message}) {
console.warn('Cannot open date picker', message);
}
}