taro小程序

发布于 2022-09-12 13:27:25 字数 899 浏览 28 评论 0

请问下taro开发小程序的过程中,子组件中的componentDidShow生命周期方法没有被执行,这个应该怎么解决呢

// 父组件代码如下
export default class Index extends Component {

componentWillMount () { }

componentDidMount () { }

componentWillUnmount () { }

componentDidShow () {

console.log('yyyyyyyyyyyy')

}

componentDidHide () { }

render () {

return (
  <View className='index'>
    <Test></Test>
    <Text>Hello world!</Text>
  </View>
)

}
}

// 子组件代码如下
export class Test extends Component {
componentWillMount() { }

componentDidMount() { }

componentWillUnmount() { }

componentDidShow() {

console.log('xxxxxxxxxxxxxxshow')

}

componentDidHide() { }

render() {

return (
  <View>测试</View>
)

}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冬天旳寂寞 2022-09-19 13:27:25

情况一,看下这个链接有关子组件componentDidShow不执行的原因 https://github.com/NervJS/tar...

image.png
排查下是不是微信开发工具基础库版本低

情况二,子组件的 componentDidShow 是跟随页面的 componentDidShow 的,所以组件动态切换是不会触发组件的 componentDidShow,你应该用子组件的 componentWillRecieveProps

撩动你心 2022-09-19 13:27:25

首先componentDidShow映射的是onShow这个声明周期,onShow只存在于Page中,Taro子组件只是一个React组件,不存在这个声明周期,所以是无法执行的, 而小程序的自定义组件是可以观测page的onShow方法执行,但是Taro的组件只是一个React组件而已,编译之后只是一段字符串,并不是小程序组件,所以即不能映射Page的onshow,也不能触发自定义组件的onshow,所以是没有办法的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文