react怎么嵌套高阶组件?

比如我有如下高阶组件

import React, { Component } from 'react'

export default defaultCount => WrappedComponent => {
  return class extends Component {
    state = {
      count: defaultCount || 0
    }
    add = this.add.bind(this)
    add() {
      this.setState(prevState => {
        return {
          count: prevState.count + 1
        }
      })
    }

    render() {
      return <WrappedComponent count={this.state.count} onClick={this.add} />
    }
  }
}

使用:

import HocAdd from './HOCs/add'
import Count from './components/count'

const HocAddComponent = HocAdd(1)(Count)

class App extends Component {
  render() {
    return (
      <div className="App">
        <HocAddComponent />
      </div>
    )
  }
}

export default App

比如说我想给加一个minus方法用来减count,但是并不是在HocAdd里加方法我要怎么写?

问题是这样,我在想如果我有一个视图组件,需要两个逻辑组件,也就是两个高阶组件。那这时候我要怎么给这个视图组件添加两个高阶组件的逻辑。

一开始我是想给HocAdd组件里面套一层HOC,那被嵌套的Hoc要怎么控制父级Hoc的count?

HocAdd(1)(Hoc(Count))

所以高阶组件的写法中,想要用多个逻辑组件要怎么合并

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