taro小程序
请问下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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
情况一,看下这个链接有关子组件componentDidShow不执行的原因 https://github.com/NervJS/tar...
排查下是不是微信开发工具基础库版本低
情况二,子组件的 componentDidShow 是跟随页面的 componentDidShow 的,所以组件动态切换是不会触发组件的 componentDidShow,你应该用子组件的 componentWillRecieveProps
首先componentDidShow映射的是onShow这个声明周期,onShow只存在于Page中,Taro子组件只是一个React组件,不存在这个声明周期,所以是无法执行的, 而小程序的自定义组件是可以观测page的onShow方法执行,但是Taro的组件只是一个React组件而已,编译之后只是一段字符串,并不是小程序组件,所以即不能映射Page的onshow,也不能触发自定义组件的onshow,所以是没有办法的。