3

我想使用下拉
选择菜单将数据输入字段日期和时间。请指导我如何做到这一点。我是 react-native 的新手,我使用了 github 的 tcomb-form-native 模块。请指导我完成这个。

'use strict';

var React = require('react-native');
//importing the react-native module
var t = require('tcomb-form-native');
//importing thetcomb-form-native module
var { AppRegistry, StyleSheet, Text, View, TouchableHighlight } =     React;

var Form = t.form.Form;

//  here we are: define your domain model
var timeSlot = t.struct({
day: t.String,             
time:t.String   
});

var options = {}; // optional rendering options (see documentation)

var AwesomeProject = React.createClass({

onPress: function () {
                    // call getValue() to get the values of the form
var value = this.refs.form.getValue();
if (value) {            // if validation fails, value will be null
  console.log(value);    // value here is an instance of Person
  }
},

render: function() {
return (
  <View style={styles.container}>
    {/* display */}
    <Form
      ref="form"
      type={timeSlot}
      options={options}
    />
    <TouchableHighlight style={styles.button} onPress={this.onPress}          underlayColor='#99d9f4'>
      <Text style={styles.buttonText}>continue</Text>
    </TouchableHighlight>
  </View>
  );
 }
});



var styles = StyleSheet.create({
 container: {
    justifyContent: 'center',
    marginTop: 50,
    padding: 20,
    backgroundColor: '#ffffff',
 },
 title: {
   fontSize: 30,
   alignSelf: 'center',
   marginBottom: 30
 },
 buttonText: {
   fontSize: 18,
   color: 'white',
   alignSelf: 'center'
 },
 button: {
   height: 36,
   backgroundColor: '#48BBEC',
   borderColor: '#48BBEC',
   borderWidth: 1,
   borderRadius: 8,
   marginBottom: 10,
   alignSelf: 'stretch',
   justifyContent: 'center'
 }
});


 module.exports=AwesomeProject
4

2 回答 2

1

这是一个较老的问题,我相信您已经找到了适合您的解决方案......但实际上有很好的文档来说明如何使用tcomb-form-native. github 页面上的内容只是一个起点。在此处查看扩展文档

如果您向下滚动到底部,github 页面还有关于 Select 的附加文档Select componenthttps ://github.com/gcanti/tcomb-form-native

于 2016-07-26T14:46:39.460 回答
0

我创建了一个支持 select (PickerIOS) 并具有原生外观的项目。使用我的库(可通过此链接访问https://github.com/MichaelCereda/react-native-form-generator),您可以执行类似的操作。

import { Form, 
        PickerField
      } from 'react-native-form-generator';

 export class MyCoolComponent extends React.Component{
  handleFormChange(formData){
    /*
    formData will contain all the values of the form,
    in this example.

    formData = {
      gender: '',
    }
     */

   }
   render(){
      <Form
        ref='registrationForm'
        onChange={this.handleFormChange.bind(this)}
        name="Personal Information">
        
        <PickerField ref='gender' placeholder='Gender'
          options={{
            male: 'Male',
            female: 'Female'
          }}/>
        
      </Form>);
  }
}

于 2016-01-20T09:32:04.133 回答