反应本机选择器问题

时间:2018-07-20 13:32:04

标签: javascript react-native

即使在google和Udemy中查询,我也无法在iPhone的屏幕中间设置Picker,但我没有解决方案。请帮助我。我希望你们能在我的React Native Picker问题上帮助我。我正试图从上周开始解决此问题,但不能这样做,请大家帮帮我。

EmployeeCreate

import React, { Component } from 'react';
import { Picker, Text } from 'react-native';
import { connect } from 'react-redux';
import { employeeUpdate } from '../actions';
import { Card, CardSection, Input, Button } from './common';

class EmployeeCreate extends Component {
  render() {
    return (
      <Card>
        <CardSection>
          <Input
            label="Name"
            placeholder="Jane"
            value={this.props.name}
            onChangeText={value => this.props.employeeUpdate({ prop: 'name', value })}
          />
        </CardSection>

        <CardSection>
          <Input
            label="Phone"
            placeholder="555-555-555"
            value={this.props.phone}
            onChangeText={value => this.props.employeeUpdate({ prop: 'phone', value })}
          />
        </CardSection>

        <CardSection style={‌{ flexDirection: 'column', }}>
          <Text style={styles.pickerTextStyle}>Shift</Text>
          <Picker
            style={‌{ flex: 1 }}
            selectedValue={this.props.shift}
            onValueChange={value => this.props.employeeUpdate({ prop: 'shift', value })}
          >
          <Picker.Item label="Monday" value="Monday" />
          <Picker.Item label="Tuesday" value="Tuesday" />
          <Picker.Item label="Wednesday" value="Wednesday" />
          <Picker.Item label="Thursday" value="Thursday" />
          <Picker.Item label="Friday" value="Friday" />
          <Picker.Item label="Saturday" value="Saturday" />
          <Picker.Item label="Sunday" value="sunday" />
          </Picker>
        </CardSection>

        <CardSection>
          <Button>
            Create
          </Button>
        </CardSection>
      </Card>
    );
  }
}

const styles = {
  pickerTextStyles: {
    fontSize: 18,
    paddingLeft: 20
  }
};

const mapStateToProps = (state) => {
  const { name, phone, shift } = state.employeeForm;
  return { name, phone, shift };
};
export default connect(mapStateToProps, { employeeUpdate })(EmployeeCreate);

CardSection

import React from 'react';
import { View } from 'react-native';

const CardSection = (props) => {
  return (
    <View style={[styles.containerStyle, props.style]}>
      {props.children}
    </View>
  );
};

const styles = {
  containerStyle: {
    borderBottomWidth: 1,
    padding: 5,
    backgroundColor: '#fff',
    justifyContent: 'flex-start',
    flexDirection: 'row',
    borderColor: '#ddd',
    position: 'relative'
  }
};

export { CardSection };

屏幕截图:

React Native Picker Issue

1 个答案:

答案 0 :(得分:0)

选择器不在中心,因为在左侧您有转移文本。如果要在中心放置拾取器,则必须设置拾取器的宽度。

尝试更改选择器的宽度=屏幕宽度-2 *(文本宽度)

如果无法更改选择器的宽度,则将选择器的左边距设置为班次文本宽度的负值

并增加选择器文本值的左侧填充,以使移位文本不会与选择器值重叠