react高阶组件包裹的组件如何操作高阶组件内的state?

写了一个高阶组件

const fn=(Com)=>{
    return class A extends Comonents{
        state={
            list
        }
        return <Com  {...this.props}/>
    }
}

const NewCom = fn(Com);
NewCom 如何操作修改 list
阅读 2.4k
4 个回答

向子组件传递方法,然后在子组件里面调用该方法。

const fn=(Com)=>{
    return class A extends Component{
        state={
            list
        }
        handleList = () => {
           // to do ...
           this.setState({
             list: ...
           })
        }
        return <Com handleList={this.handleList} {...this.props}/>
    }
}
class Com extends Components {
    state = {}
    handleList = () => this.props.handleList()
    
    return (
        ....
    )
}

普通组件怎么操作,高阶组件就怎么操作

const fn=(Com)=>{
    return class A extends Comonents{
        state={
            list
        }
        componentDidMount(){
            fetch('/XXX')
            .then(res=>{
                ...
                this.setState({...});
            })
        }
        render(){
            return <Com  {...this.props}/>
        }
    }
}

const NewCom = fn(Com);

生命周期?props?

const fn=(Com)=>{
    return class A extends Comonents{
        state={
            list
        }
        return <Com list={this.state.list} {...this.props}/>
    }
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题