Nau*_*wir 6 javascript reactjs react-native
因此,我将reminder componenttextInput 从 react-native 导入,DatePicker 从本机库导入,还有一个按钮将在单击事件时保存表单。
现在,当我点击日期选择器,它提供了一个错误说:value for date cannot be cast from string to double。我还附上了错误的屏幕截图。
不知道我哪里出错了。
这是组件的代码。
class Reminder extends Component {
constructor(props) {
super(props);
let formatDate = new Date();
this.state = {
chosenDate: formatDate.toISOString().split('T')[0],
text: '',
};
this.handleChangeInput = this.handleChangeInput.bind(this);
this.saveData = this.saveData.bind(this);
}
render() {
const {chosenDate} = this.state;
return (
<View>
<Form style={styles.formContainer}>
<View style={styles.formView}>
< TextInput
placeholder = "Set your reminder"
onChangeText={this.handleChangeInput}
value={this.state.text}
/>
<DatePicker
defaultDate={chosenDate}
mode = "date"
animationType={"fade"}
androidMode={"default"}
placeHolderText="Select date"
textStyle={{ color: "green" }}
placeHolderTextStyle={{ color: "#d3d3d3" }}
onDateChange={(chosenDate) => this.setState({chosenDate})}
/>
<Text style={styles.datePicker}>
{chosenDate}
</Text>
</View>
<View style={styles.footer}>
<Button block success style={styles.saveBtn}
onPress={ () =>
{
this.saveData()
//console.log('save data', fomattedState);
Alert.alert('Yay!!', 'Succefully saved.')
}
}
>
<Icon type='MaterialIcons' name='done' />
</Button>
</View>
</Form>
</View>
);
}
handleChangeInput = (input) => {
this.setState({
text: input
});
}
//save the input
saveData() {
let {chosenDate, ...restOfState} = this.state;
let textArray = Object.entries(restOfState).map(([key, value])=> ({[key]: value}));
let fomattedState = {[chosenDate]:textArray};
console.log('formatted state', fomattedState);
AsyncStorage.setItem("key", JSON.stringify(this.fomattedState));
}
}
Run Code Online (Sandbox Code Playgroud)
小智 9
我在这个@react-native-community/datetimepicker包中遇到了同样的问题。所以我用 Moment 库和 JavaScriptDate.parse()方法修复了这个问题:
const [targetDate, setTargetDate] = useState(
new Date(
Date.parse(
moment(selectedGoal.targetDate, 'DD/MM/YYYY').format(
'ddd MMM DD YYYY HH:mm:ss ZZ',
),
),
),
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9295 次 |
| 最近记录: |