我正在编写一个反应电子程序。尝试在这里使用 react-bootstrap 模块中的模态。我偶然发现了一个问题,经过一些测试后发现这是导致问题的 useState() 行。每当我包含 useState() 时,屏幕就会完全空白,不仅是使用状态的组件,还有电子应用程序的整个窗口以及所有父组件和兄弟组件。这与最有可能将其用于模态无关,因为它也不适用于简单的 useState() 情况。这是我的这个组件的代码:
import * as React from 'react';
import { Component, useState } from 'react';
import {Character} from '../../../../Data/Character';
import StatusBar from '../../../Components/StatusBar';
import Button from 'react-bootstrap/Button';
import Modal from 'react-bootstrap/Modal';
export interface HealthCardProps {
Naomi:Character
}
export interface HealthCardState {
}
class HealthCard extends React.Component<HealthCardProps, HealthCardState> {
GetLabelHealth(){
let label:string = this.props.Naomi.currentHealth+"/"+this.props.Naomi.maxHealth;
return label;
};
GetLabelHitDice(currentHD:number,HD:number){
let label:string = currentHD + "d"+HD
return label
}
render() {
const [show, setShow] = useState(false);
const handleClose = () => setShow(false);
const handleShow = () => setShow(true);
return (
<>
<div className="card" style={{textAlign:"center"}}>
<span style={{fontSize:"20px",color:"#708F93"}}>Hit Points</span>
<div className="HealthBar">
<StatusBar bColor="#9DBE9E"
fColor="#BAE6BC"
value={(this.props.Naomi.currentHealth/this.props.Naomi.maxHealth)*100}
label={this.GetLabelHealth()}/>
{this.props.Naomi.classes.length>=0 &&
this.props.Naomi.classes.map((c)=>
<div style={{marginTop:"2px"}}>
<StatusBar bColor="#c5d2db"
fColor="#D8E2E9"
value={(c.currentHDie/c.classLevel)*100}
label={this.GetLabelHitDice(c.currentHDie,c.hitDie)}/>
</div>
)}
<Modal show={show} onHide={handleClose}>
<Modal.Header closeButton>
<Modal.Title>Modal heading</Modal.Title>
</Modal.Header>
<Modal.Body>Woohoo, you're reading this text in a modal!</Modal.Body>
<Modal.Footer>
<Button variant="secondary" onClick={handleClose}>
Close
</Button>
<Button variant="primary" onClick={handleClose}>
Save Changes
</Button>
</Modal.Footer>
</Modal>
</div>
</div>
</> );
}
}
export default HealthCard;
我会很感激任何帮助,我是电子新手并且一般会做出反应。