放置我的功能组件创建者

时间:2016-10-19 20:02:05

标签: javascript reactjs

我创建了一个创建动态组件的函数。基本上它接收一个现有的组件并在componentDidMount中执行一些操作。



import React from "react"
import { connect } from "react-redux"
import { getLeaveMessageById, deleteLeaveMessage } from "actions/leaveMessages"
import { withRouter } from "react-router"

export const withLeaveMessage = (leaveMessageId, Component) => {
  const Container = React.createClass({
    componentDidMount: function() {
      this.props.router.setRouteLeaveHook(
        this.props.route,
        this.routerWillLeave
      )
    },
    componentWillUnmount: function() {
      this.props.deleteLeaveMessage("proposalForm")
    },
    routerWillLeave: function(){
      return this.props.leaveMessage
    },
    render: function() {
      return <Component/>
    }
  })

  const mapStateToProps = state => {
    return {
      leaveMessage: getLeaveMessageById(leaveMessageId, state)
    }
  }

  const mapDispatchToProps = dispatch => {
    return { deleteLeaveMessage }
  }

  return withRouter(connect(mapStateToProps, mapDispatchToProps)(Container))
}
&#13;
&#13;
&#13;

那么,什么是更好的地方呢?防爆。组件,容器,工具等

0 个答案:

没有答案