纵横研究院React技术专题社区

react高阶组件

2019-06-04  本文已影响7人  华戈的小书

什么是高阶组件
高阶组件就是一个函数,传给它一个组件,它返回一个新的组件。

const NewComponent = higherOrderComponent(OldComponent)
import React, { Component } from 'react'
export default (OldComponent) => {
  class NewComponent extends Component {
    render () {
      return <OldComponent />
    }
  }
  return NewComponent
}
import React, { Component } from 'react'

export default (OldComponent, name) => {
  class NewComponent extends Component {
    constructor () {
      super()
      this.state = { 
        data: null,
      }
    }
    componentWillMount () {
      const data = sessionStorage.getItem(name);
      this.setState({ data });
    }
    render () {
      return <OlComponent data={this.state.data} />
    }
  }
  return NewComponent
}
import sessionLoadData from './component/sessionLoadData.js'

class InputWithUserName extends Component {
  render () {
    return <div>用户名:<input name="username" value={this.props.data} /></div>
  }
}
InputWithUserName = sessionLoadData(InputWithUserName, 'username');
export default InputWithUserName

总结

上一篇 下一篇

猜你喜欢

热点阅读