2

我正在使用 StencilJS 创建一个 JSX 组件,并且我的组件不会根据其状态更改重新渲染。我不知道为什么:

import { Component, Prop, State } from '@stencil/core'

@Component({
  tag: "button-popover-group",
})

export class ButtonPopoverContainer{
  @State() showPopover:boolean = false;
  @Prop() popoverContent:JSX.Element;

  toggleShowPopover() {
    this.showPopover = !this.showPopover;
    console.log(this.showPopover);
  }

  render() {
    return (
      <div class="rba-something">
        <my-button onClick={this.toggleShowPopover}/>
  
        {this.showPopover ? 
          <my-popover>
            {this.popoverContent}
          </my-popover> : 
          null
        }
      </div>
      
    )
  }
}

我的控制台日志语句验证状态正在更改,但由于某种原因,我的弹出框永远不可见

4

1 回答 1

4

好的,答案是将切换功能更改为粗箭头功能,因为与“this”的绑定在 JSX 中丢失了

于 2018-09-04T15:55:01.547 回答