反应状态更改lambda功能代码未调用

时间:2020-04-01 16:22:47

标签: reactjs react-bootstrap

在render()函数中,我在const“成功”中存储了一些代码。但是,即使状态发生了变化,也永远不会调用下面的Card.Footer标记之间对“成功”的引用。 是什么原因?

 render() {

let fields = this.props.fields.map(field => {

    return(
    <Form.Group controlId={field.col}>
      <Form.Row>
        <Form.Label>{field.label}</Form.Label>
        <Form.Control required={field.required} type="text" placeholder={field.label} />
      </Form.Row>
    </Form.Group>
    )
});

const success = () => {
    console.log('B');
    return(<small>Operation {this.props.operation} succeded.</small>);

    if(this.state.dml_success) {

    return(

        <div>Operation {this.props.operation} succeded.</div>
    )
    }
};

console.log('C');

return(
    <Card style={{ width: '18rem', backgroundColor: 'lightgrey' }}>
      <Card.Body>
    <Card.Title>{this.props.title}</Card.Title>
    <Card.Text>
      <Form onSubmit={this.dml.bind(this)}>
        {fields}
        <Form.Row>
          <Button variant="primary" type="submit">
        {this.props.operation}
          </Button>
        </Form.Row>
      </Form>
        </Card.Text>
      </Card.Body>
      <Card.Footer className="text-muted">{success}</Card.Footer>
    </Card>     
)
}

}

2 个答案:

答案 0 :(得分:1)

您已将成功定义为函数,因此需要添加括号

{success()}

答案 1 :(得分:0)

您需要调用函数ul: margin 0;而不是{success()}