JSX条件渲染不基于状态更改进行更新

问题描述 投票:1回答:1

我正在使用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>
      
    )
  }
}

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

jsx web-component stenciljs
1个回答
2
投票

好的,答案是将切换功能更改为胖箭头功能,因为绑定到'this'在JSX中丢失了

© www.soinside.com 2019 - 2024. All rights reserved.