[英]failes to open modal component from another component
我正在尝试从另一个组件(扩展 React.PureComponent)React.PureComponent 打开模式(扩展组件)。
我是新来的反应和 javascript 所以也许我的问题已经通过混合这些组件类型?
老实说,我在 TSX 文件中使用一个组件,在 JS 文件中使用另一个组件。
也许这太麻烦了?
底线是使用此代码后:
Modal.js 中的第一个组件:
import React, {Component} from 'react'
import {Modal, Button, Row, Col, Form} from 'react-bootstrap';
export class AddModal extends Component {
constructor(props) {
super(props);
}
render(){
return(
<Modal
{...this.props}
size="lg"
aria-labelledby="contained-modal-title-vcenter"
centered
>
<Modal.Header closeButton>
<Modal.Title id="contained-modal-title-vcenter">
Modal heading
</Modal.Title>
</Modal.Header>
<Modal.Body>
<h4>Centered Modal</h4>
<p>
Cras mattis consectetur purus sit amet fermentum. Cras justo odio,
dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac
consectetur ac, vestibulum at eros.
</p>
</Modal.Body>
<Modal.Footer>
<Button onClick={this.props.onHide}>Close</Button>
</Modal.Footer>
</Modal>
);
}
}
第二个组件部分相关代码
import React from 'react';
import './App.scss';
import {createApiClient, Ticket} from './api';
import {AddModal} from './Modal'
import {Button} from 'react-bootstrap';
export type AppState = {
tickets?: Ticket[],
search: string,
hidden: number,
show: boolean,
see_more : boolean[],
addModalShow : boolean
}
const api = createApiClient();
export class App extends React.PureComponent<{}, AppState> {
state: AppState = {
tickets: [],
search: '',
hidden : 0,
show : false,
see_more : [],
addModalShow : false
};
addModalClose = () => {
this.setState( {
addModalShow : false
});
}
addModalOpen = () => {
this.setState( {
addModalShow : true
});
}
<Button id="button" className="add_ticket" onClick={this.addModalOpen}>New Ticket</Button>
<AddModal
show={this.state.addModalShow}
onHIde={this.addModalClose}
/>
按下按钮后我得到的是:它实际上是在第一个组件之上。
知道这里有什么问题吗?
首先,您需要使用 NPM 安装引导程序
npm install --save bootstrap
现在在您的项目中的任何地方导入引导程序(推荐在最顶层的组件中) ,这适用于我的情况。
import 'bootstrap/dist/css/bootstrap.css';
CSS 样式将开始工作。 :)
快乐编码!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.