首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在反应性本机组件的初始负载上呈现承诺

如何在反应性本机组件的初始负载上呈现承诺
EN

Stack Overflow用户
提问于 2017-06-21 07:19:23
回答 1查看 264关注 0票数 0

我正在尝试使用React DatePickerAndroid。但是我想在组件的初始负载上展示它。但问题是,DatePickerAndroid是一个promise (见文档),我无法在初始呈现时加载它。

因此,我所拥有的是:

代码语言:javascript
代码运行次数:0
运行
复制
render(){
    let datePicker = <DatePickerIOS date={this.state.selectedValue} mode="date" timeZoneOffsetInMinutes={this.state.timeZoneOffsetInHours * 60} onDateChange={(date) => { this.setState({selectedValue: date})}} />;
    if (Platform.OS === "android"){
         datePicker = this.showAndroidDatePicker()
    } 

    return(
       <View>          
          {datePicker}
       </View>
    )
}

其中showAndroidDatePicker函数与文档中的一样:

代码语言:javascript
代码运行次数:0
运行
复制
showAndroidDatePicker = async () => {
    try {
        const {action, year, month, day} = await DatePickerAndroid.open({
           date: this.state.selectedValue
        });
        if (action !== DatePickerAndroid.dismissedAction) {
           var date = new Date(year, month, day);
           this.setState({selectedValue: date.toLocaleDateString()});
        }
    }catch ({code, message}) {
        console.warn('Cannot open date picker', message);
    }
};

但是当我在android上运行它时,我会看到一个错误的红色大屏幕:

对象作为React子对象无效(找到:带有键的对象({_45、_81、_64、_54})。.

知道怎么处理吗?

EN

回答 1

Stack Overflow用户

发布于 2017-06-21 08:35:55

实际上,您试图呈现open的结果,根据文档,它告诉您用户选择了什么。因此,您可能不希望呈现它,也不希望它在您的呈现函数中的任何位置。

添加一个按钮来打开日期选择器,当按下时调用open方法。它的结果将告诉您用户选择了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44669289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档