簡體   English   中英

React-Bootstrap 水平表單不起作用

[英]React-Bootstrap Horizontal Form not working

我正在嘗試使用 react-bootstrap 創建表單,但無法弄清楚如何使用水平表單布局。 下面是我的 signin.js 代碼。

import React, {Component} from 'react';
import {reduxForm} from 'redux-form';
import {Form, FormGroup, FormControl, ControlLabel, Col, Button} from 'react-bootstrap';

class Signin extends Component{
    handleFormSubmit({username,password}){
        console.log(username,password);
    }
    render(){
        const {handleSubmit, fields: {username,password}}=this.props;
        return(
            <Form horizontal className="col-sm-6 offset-sm-3" onSubmit={handleSubmit(this.handleFormSubmit.bind(this))}>
                <FormGroup>
                    <Col componentClass={ControlLabel} sm={2}>
                        Username:
                    </Col>
                    <Col sm={10}>
                        <FormControl {...username} type="text" />
                    </Col>
                </FormGroup>
                <FormGroup>
                    <Col componentClass={ControlLabel} sm={2}>
                        Password:
                    </Col>
                    <Col sm={10}>
                        <FormControl {...password} type="password" />
                    </Col>
                </FormGroup>
                <FormGroup>
                    <Col>
                        <Button type="submit">Submit</Button>
                    </Col>
                </FormGroup>
            </Form>
        );
    }
}

export default reduxForm({
    form: 'signin',
    fields: ['username','password']
})(Signin);

您的實現不起作用的原因是 Bootstrap 使用 Flex。 您必須將表單元素排成一行。

<Form horizontal className="col-sm-6 offset-sm-3" onSubmit={handleSubmit(this.handleFormSubmit.bind(this))}>
                <FormGroup>
                    <Form.Row>
<Col componentClass={ControlLabel} sm={2}>
                        Username:
                    </Col>
                    <Col sm={10}>
                        <FormControl {...username} type="text" />
                    </Col>
</Form.Row
                </FormGroup>
                <FormGroup>
<Form.Row>
                    <Col componentClass={ControlLabel} sm={2}>
                        Password:
                    </Col>
                    <Col sm={10}>
                        <FormControl {...password} type="password" />
                    </Col>
</Form.Row>
                </FormGroup>
                <FormGroup>
                    <Col>
                        <Button type="submit">Submit</Button>
                    </Col>
                </FormGroup>
            </Form>

我正在使用“內聯<\/strong><\/em>”而不是水平和它的工作。

<Form inline onSubmit={handleSubmit}>
 <Form.Group>
     <Form.Label>Email</Form.Label>
     <Form.Control type="email" name="email" isInvalid={!isEmpty(errors.email)} value={values.email} onChange={handleChange}></Form.Control>
     <Form.Control.Feedback className="font-weight-bold" type="invalid" role="alert"> {errors.email}</Form.Control.Feedback>
 </Form.Group>
 <Form.Group>
     <Form.Label>Password</Form.Label>
     <Form.Control type="password" name="password" value={values.password} isInvalid={!isEmpty(errors.password)} onChange={handleChange}></Form.Control>
     <Form.Control.Feedback className="font-weight-bold" type="invalid" role="alert"> {errors.password}</Form.Control.Feedback>

 </Form.Group>
 <Form.Group className="text-center">
     <Button type="button" variant="primary" className="mt-3" onClick={submitForm}>Login</Button>
 </Form.Group>
</Form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM