【发布时间】:2020-07-28 07:57:16
【问题描述】:
我的项目的单选按钮有问题。选中的收音机基于变量 users.gender。当我对 users.gender 进行 console.log 时,我可以看到当我单击男性或女性时,值正在改变,但选中的收音机没有改变,我不知道为什么。我在网上阅读过,有些人说这是因为 preventDefault 但我没有。这是我的代码的一部分:
import React, { useState } from 'react';
import {Modal, Button, Form, Row, Col, Tab, Tabs} from 'react-bootstrap';
import * as Icon from 'react-bootstrap-icons';
export default function Modalregisterlogin(props) {
const [show, setShow] = useState(false);
const handleClose = () => setShow(false);
const handleShow = () => setShow(true);
const [users, setUsers] = useState({
gender: "",
});
const display = e => {
console.log(users.gender);
};
return (
<>
<Button variant="primary" onClick={handleShow}>
{props.page}
</Button>
<Modal show={show} onHide={handleClose} size="lg">
<Modal.Body className="modalcontent" >
<Icon.X size={30} className="modalclose" onClick={handleClose}/>
<Tabs defaultActiveKey={props.tab} id="test">
<Tab eventKey="register" title="INSCRIPTION">
<Form >
<Form.Group as={Row} >
<Form.Label column md="3">Genre: {users.gender}</Form.Label>
<Col md="9">
<Form.Check
name="gender"
value="male"
inline
checked={users.gender === "male"}
label="Male"
type='radio'
onChange={e => setUsers({ gender : 'male'})}/>
<Form.Check
name="gender"
value="female"
inline
checked={users.gender === "female"}
label="Female"
type='radio'
onChange={e => setUsers({ gender : 'female'})}/>
</Col>
</Form.Group>
</Form>
<Button variant="primary" type="submit" onClick={display}>
Show gender value
</Button>
</Tab>
<Tab eventKey="login" title="CONNEXION">
<Button variant="primary" type="submit" onClick={handleClose}>
Se connecter
</Button>
</Tab>
</Modal.Body>
</Modal>
</>
);
}
提前致谢!
【问题讨论】:
标签: javascript reactjs react-bootstrap radio