首页 > 解决方案 > React Native DatePickerIOS Rotate Back to Old Date

问题描述

I'm Using DatePickerIOS in React native after Change Date of DatePickerIOS the Wheel is Rotate Back To Old Date but in alert Display New Date.

I want to Set New Date and remove Wheel Rotate Back to old Date Issue.

import React, {Component} from 'react';
import {StyleSheet, View, DatePickerIOS, Text} from 'react-native';
import { StackNavigator } from 'react-navigation';

var moment = require('moment');

const DatePickerIOSExample = (props) => {

    state = {
        stateDate: new Date(),
    }

    changeDate = (date) => {
        this.setState = ({
            stateDate:date
        })
        alert(this.setState.stateDate);
    }

    const {navigate} = props.navigation;
    return(
        <View>
            <DatePickerIOS 
                date={this.state.stateDate} 
                onDateChange={this.changeDate.bind(this)} 
                mode="date" />

            <Text>{moment(this.state.stateDate).format('DD/MM/YYYY')}</Text>
        </View>
    );
}

export default DatePickerIOSExample;

标签: iosobjective-creact-nativedatepicker

解决方案


您在可悲的“setState”上创建而不是调用 setState。

正确的方法是:

changeDate = (date) => {
    this.setState({
        stateDate:date
    })
    alert(this.state.stateDate);
}

如您所见,我在“setState”之后删除了“=”,并且更改了警报内容“this.state.stateDate”(因此您正在访问状态)。

重要提示:记住 setState 是异步的(https://medium.com/@wereHamster/beware-react-setstate-is-asynchronous-ce87ef1a9cf3


推荐阅读