繁体   English   中英

react-bootstrap - Form.Control defaultValue 重新渲染时未更新

[英]react-bootstrap - Form.Control defaultValue not updated when re-rendered

当我调用setState并且我的表单被重新呈现时,文本输入的值不会改变。

import React, { Component } from 'react';
import { Button, Col, Form, Row } from 'react-bootstrap';

export default class Test extends Component {

    constructor(props) {
        super(props);
        this.state = {
            status: "new"
        }
    }

    approve = (e) => {
        this.setState({
            status: "I'm newer than you!"
        });
        e.preventDefault();
    }

    render() {
        return (
            <div>
                Status is {this.state.status}
                <Form onSubmit={this.approve}>
                    <Form.Group as={Row} controlId="status">
                        <Form.Label column >Status</Form.Label>
                        <Col>
                            <Form.Control readOnly type="text" size="sm" defaultValue={this.state.status} />
                        </Col>
                    </Form.Group>
                    <Form.Group as={Row}>
                        <Button type="submit">approve</Button>
                    </Form.Group>
                </Form>
            </div>
        );
    }
}

当我单击按钮时,我看到 static 文本(“状态为...”)得到更新,但输入字段没有。 我是否错误地认为文本输入应该更新?

如果要更改它,可以在 FormControl 组件中将 'defaultValue' 替换为 'value'。

<Form.Control readOnly type="text" size="sm" value={this.state.status} />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM