NervJS / taro

开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
https://docs.taro.zone/
Other
35.62k stars 4.8k forks source link

[h5]不能在子组件内调用Page继承类的函数($component不存在) #3629

Closed YuanQuan closed 4 years ago

YuanQuan commented 5 years ago

问题描述 [问题描述:站在其它人的角度尽可能清晰地、简洁地把问题描述清楚]

复现步骤 myPage.tsx

export default class coupon extends XComponent<IProps, IState> {
...
  <MyComponent></MyComponent>
...
}

Page继承类XComponent.js

export default class XComponent extends Component {
...
setPage = node => {
    this.__page_node__ = node;
  };
...
}

自定义组件MyComponent.js

export default class MyComponent extends PureComponent<IProps, IState> {
...
  componentWillMount() {
        let currentPages = Taro.getCurrentPages();
        let currentPage: any = currentPages[currentPages.length - 1];
        currentPage.$component.setPage(this);//这里会报错
    }
...

期望行为 可以想微信环境一样获得$component对象

报错信息

currentPage当中不存在$component对象

系统信息

Taro v1.2 及以上版本已添加 taro info 命令,方便大家查看系统及依赖信息,运行该命令后将结果贴下面即可。

taro-bot[bot] commented 5 years ago

欢迎提交 Issue~

如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏

如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。

Good luck and happy coding~

YuanQuan commented 5 years ago

这个有人看看么 PR都有