反应调用组件的功能,但功能丧失这个[复制]的定义

问题描述 投票:0回答:2

我有这样的代码,由于某种原因,当拨动被调用控制台提供未定义“this.state。”真的不知道发生了什么事情吧。

// Toggles the modal to open or close depending on current state
  toggle() {
    console.log(this.state);
    this.setState({
      showModal: !this.state.showModal
    });
  };

唐恩在渲染

<Modal isOpen={this.state.showModal} toggle={this.toggle}>
  <ModalHeader toggle={this.toggle}>Modal title</ModalHeader>
  <ModalBody>
    Lorem ipsum dolor sit amet
  </ModalBody>
  <ModalFooter>
    <Button color="primary" onClick={this.toggle}>Save</Button>
    <Button color="secondary" onClick={this.toggle}>Cancel</Button>
  </ModalFooter>
</Modal>
javascript reactjs reactstrap
2个回答
0
投票

这是因为,这是指被叫方的范围,因此,并不是指国家,你会希望它。结合的方法进行这在构造或使用的箭头功能。

toggle = () => {
  console.log(this.state);
  this.setState({
    showModal: !this.state.showModal
  });
};

0
投票

这是因为toggle()有它自己的this,因此不具有state,您可以使用像箭一般功能:

toggle = () => {
    console.log(this.state);
    this.setState({
      showModal: !this.state.showModal
    });
  };

或在构造它绑定

constructor(props){
  super(props);
  this.toggle = this.toggle.bind(this);
}
© www.soinside.com 2019 - 2024. All rights reserved.