我在Modal
中使用DatePickerIOS
將選定日期返回到主頁面。React Native中DatePickerIOS的道具問題
DateTimeController組件
var DateTimeController = React.createClass({
show: function() {
this.setState({modalVisible: true});
},
getInitialState: function() {
return {
timeZoneOffsetInHours: this.props.timeZoneOffsetInHours,
date: this.props.date,
color: this.props.color || '#007AFF',
minimumDate: this.props.minimumDate,
modalVisible: false
};
},
onDateChange: function (date) {
this.setState({date: date});
},
cancelButtonPressed: function() {
this.setState({modalVisible: false});
},
confirmButtonPressed: function() {
if(this.props.onSubmit) this.props.onSubmit(this.state.date);
this.setState({modalVisible: false});
},
render: function() {
return (
<Modal
animated={true}
transparent={true}
visible={this.state.modalVisible}>
<View style={styles.basicContainer}>
<View style={styles.modalContainer}>
<View style={styles.buttonView}>
<Button onPress={this.cancelButtonPressed} style={styles.timeSectionButtons}></Button>
<Button onPress={this.confirmButtonPressed} style={styles.timeSectionButtons}></Button>
</View>
<View style={styles.mainBox}>
<DatePickerIOS
date={this.state.date}
mode="datetime"
timeZoneOffsetInMinutes={this.state.timeZoneOffsetInHours}
onDateChange={this.onDateChange}
minimumDate={this.state.minimumDate}
/>
</View>
</View>
</View>
</Modal>
);
}
});
實現組件
getInitialState: function() {
return {
date: new Date(),
timeZoneOffsetInHours: (-1) * (new Date()).getTimezoneOffset()/60,
};
},
onDateChange: function (date) {
this.setState({date: date});
},
return (
<View style={styles.mainContainer}>
<Text
style={styles.secondaryText}
onPress={()=>{
this.refs.picker.show();
}}>
{
this.state.date.toLocaleDateString() +
' ' +
this.state.date.toLocaleTimeString()
}
</Text>
<DateTimeController ref={'picker'} timeZoneOffsetInHours={this.state.timeZoneOffsetInHours * 60}
date={this.state.date} minimumDate={new Date()}
onSubmit={(date)=>{
this.setState({date: date})
}}
/>
<View>
);
我得到以下YellowBox警告當模態打開渲染DatePickerIOS
的。
警告:無法propType:供給到
RCTDatePicker
類型Number
的無效丙date
,的Date
預期實例。檢查DatePickerIOS
的渲染方法 。警告:失敗propType:所需道具
onDateChange
不是RCTDatePicker
中指定的 。檢查渲染方法DatePickerIOS
。警告:無法propType:供給到
RCTDatePicker
類型Number
的無效丙minimumDate
,的Date
預期實例。檢查DatePickerIOS
的渲染方法 。
如何避免這些警告並解決此問題?