RubyLouvre / anu

the React16-compat library with hooks
https://rubylouvre.github.io/anu/
Apache License 2.0
3.18k stars 319 forks source link

百度智能小程序9月生命周期非兼容性改动 #1183

Closed thisTom closed 4 years ago

thisTom commented 5 years ago

https://smartprogram.baidu.com/forum/topic/show/70128 更新这个改动后,子组件中 应该触发渲染的时候却没有渲染,即使render方法打印出了数据的变化,视图还是没有想要的变化,子使用了componentWillReceiveProps生命周期。 image

thisTom commented 5 years ago

线上的问题, 可以帮忙看一下么

RubyLouvre commented 4 years ago

你弄一个仓库,把你的例子精简一下放上来啊

RubyLouvre commented 4 years ago

image

nanachi init aaa
cd aaa && npm i
nanachi watch:bu

将source/pages/syntax/extends/index改成

import React from '@react';
import './index.scss';
import Dog from '@syntaxComponents/Dog/index';

class P extends React.Component {
    state = {
        name: 'ruby'
    }
    render() {
        return (
            <div class="anu-block">
                <div >类继承的演示</div>
                <Dog name={this.state.name} age={12} />
            </div>
        );
    }
    componentWillMount(){
        setTimeout(()=>{
            this.setState({name: 1000})
        }, 3000)

    }
}

export default P;

将source/components/Animal/index

  componentWillReceiveProps(props){
        this.setState({
            name: props.name+"1"
        });
    }

没有发现问题

thisTom commented 4 years ago

https://smartprogram.baidu.com/forum/topic/show/70128 更新这个改动后,子组件中 应该触发渲染的时候却没有渲染,即使render方法打印出了数据的变化,视图还是没有想要的变化,子使用了componentWillReceiveProps生命周期。 image

image

nanachi init aaa
cd aaa && npm i
nanachi watch:bu

将source/pages/syntax/extends/index改成

import React from '@react';
import './index.scss';
import Dog from '@syntaxComponents/Dog/index';

class P extends React.Component {
    state = {
        name: 'ruby'
    }
    render() {
        return (
            <div class="anu-block">
                <div >类继承的演示</div>
                <Dog name={this.state.name} age={12} />
            </div>
        );
    }
    componentWillMount(){
        setTimeout(()=>{
            this.setState({name: 1000})
        }, 3000)

    }
}

export default P;

将source/components/Animal/index

  componentWillReceiveProps(props){
        this.setState({
            name: props.name+"1"
        });
    }

没有发现问题

小程序版本需要切换到3.105.17或以上。使用你的测试demo 确实有问题