在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>
)
}
}
答案 0 :(得分:1)
您已将成功定义为函数,因此需要添加括号
{success()}
答案 1 :(得分:0)
您需要调用函数ul: margin 0;
而不是{success()}
。