【问题标题】:React Native DatePickerIOS Rotate Back to Old DateReact Native DatePickerIOS 旋转回旧日期
【发布时间】:2018-06-18 07:17:23
【问题描述】:

我在 React 本机中使用 DatePickerIOS在 DatePickerIOS 更改日期之后,轮子会旋转回旧日期,但会显示新日期。

我想设置新日期并删除轮子旋转回旧日期问题​​。

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;

【问题讨论】:

    标签: ios objective-c react-native datepicker


    【解决方案1】:

    您是在可悲的“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)

    【讨论】:

    • 它是在更改另一个更改后工作 const DatePickerIOSExample 更改为 class DatePickerIOSExample extends Component 并在 **render() { **
    猜你喜欢
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 2018-09-28
    • 2022-08-19
    • 2023-02-11
    • 1970-01-01
    相关资源
    最近更新 更多