我在组件 A 中有一个模态,我想通过单击组件 B 中的按钮来显示该模态。我使用了 ref 关键字,但它不适用于此控制台错误“TypeError:无法解构‘object null’的属性‘toggleModal’,因为它为 null。”A.js:export class LoginForm extends Component{constructor(props){ super(props); this.state ={ isModalOpen: false } this.toggleModal = this.toggleModal.bind(this);};toggleModal(){ this.setState({ isModalOpen: !this.state.isModalOpen })};render(){ return( <Modal isOpen={this.state.isModalOpen} toggle={this.toggleModal}> <ModalHeader toggle={this.toggleModal}>Login</ModalHeader> <ModalBody> ... </ModalBody> </Modal> )}B.js:import { LoginForm } from './FormsComponent'; class Header extends Component{ constructor(props){ super(props); }; loginModalRef = ({toggleModal}) =>{ this.showModal = toggleModal; }; onLoginClick = () =>{ this.showModal(); } render(){ return( <Nav className="ml-auto" navbar onClick={this.onLoginClick}> <NavItem> <Button outline color="primary"> <span className="fa fa-sign-in fa-lg"> Login</span> </Button> </NavItem> </Nav> <LoginForm ref={this.loginModalRef} /> )}}更新问题:这种方式非常适合我,我发现错误消息是由于我的代码中的另一个问题引起的。所以伙计们,如果您想做同样的事情,可以将其作为解决方案。
添加回答
举报
0/150
提交
取消