我在模式中使用
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>
);
当模态打开呈现DatePickerIOS
时,我将收到以下YellowBox警告。
警告:失败的proType:无效的propdate
类型的Number
提供给RCTDatePicker
,Date
的预期实例。检查DatePickerIOS的渲染方法。
警告:失败的propType:未在RCTDatePicker
中指定所需的proponDateChange
。检查DatePickerIOS
的渲染方法。
警告:propType失败:提供给RCTDatePicker
的类型为Number
的propminimumDate
无效,应为日期的实例。检查
DatePickerIOS
的渲染方法。
如何避免这些警告并解决这个问题?
我们不能同时使用占位符和默认值,可能是你一次写两个,我已经删除了其中一个,它对我有效。在这里输入图像描述
手机屏幕截图
它看起来像一个RN错误。我试过了,得到了同样的结果。我已经打开了一个Github问题。你可以在这里追踪它。一旦问题解决,我将编辑答案。
不久前我遇到了这个问题。我认为已经有几个问题需要团队解决,不确定他们是否解决了。我使用的是RN 0.16.0,所以现在可能已经修复了。
当时对我有用的一个小技巧是修改DatePickerIOS中的render方法。网间网操作系统。js(位于节点\模块/react native/Libraries/Components/DatePicker中)。
那里的道具调用getTime()函数,该函数返回一个数字并最终抛出该警告。我放弃了getTime调用,只保留了属性本身,在正确保存数据时警告消失了。
希望有帮助!
新建一个React Native工程,参考React Native 官网 react-native init hello cd hello yarn add baidumobstat-react-native react-native link 进入新建的目录,打开ios目录下的hello.xcodeproj工程,在iOS工程的Linked Frameworks and Libr
本文向大家介绍ReactNative之FlatList的具体使用方法,包括了ReactNative之FlatList的具体使用方法的使用技巧和注意事项,需要的朋友参考一下 之前使用的组件是ListView,当时要添加一个下拉刷新,上拉加载的功能,所以对ListView做了一些封装,但是后来看官方文档,不建议再使用ListView,因为效率问题,做过Android的朋友都知道,Android的Lis
在JSX中,如何从引用的属性值中引用来自的值? 例如: 生成的HTML输出为:
使用 react native 和 socket.io 开发的模仿微信聊天的 app,后台使用 node 和 moogodb,目前还在开发中。 已完成的功能 登录 注册 通讯录 两人文字聊天 下拉获取聊天历史记录 未读消息提示 正在开发的功能 朋友圈 多人聊天 用户管理 系统设置 语音聊天 发送图片 效果展示
问题内容: 在JSX中,如何从带引号的属性值内部引用值? 例如: 产生的HTML输出为: 问题答案: React(或JSX)不支持在属性值内进行变量插值,但您可以将任何JS表达式放在花括号内作为整个属性值,因此可以这样做:
我试图理解下面的反应HOC; 下面是另一个组件; 具体来说我是想了解 如果它“DisplayTheCret”访问道具“secretToLife”或WrappedComponent?正确看待这一问题的方法是什么? “const WrappedComponent=withSecretToLife(displaytescret);”行位于“const displaytescret=props”行之后=