【问题标题】:Decorate imported React component with higher order component用高阶组件装饰导入的 React 组件
【发布时间】:2016-12-12 09:26:04
【问题描述】:

我知道在导出组件之前如何装饰它:

export default ButtonDecorator(MainButton)

但是如果我尝试创建一个索引来导入它并在某些情况下以不同的方式装饰它。它不会工作。

这里是索引的例子:

import MainButton from './main/main_button'
import BackButton from './back/back_button'

import { ButtonDecorator, LinkDecorator } from 'decorators'

export {
    ButtonDecorator(MainButton) as MainButton,
    LinkDecorator(MainButton) as MainHrefButton,
    BackButton
}

还有高阶组件:

import React, { Component } from 'react'

let Btn = InnerComponent => {
    class NewBtn extends Component {

        constructor(props) {
            super(props)
        }

        render() {
                return (
                    <button onClick={this.props.onClick}>
                        <InnerComponent disabled={this.props.disabled} />
                    </button>
                )
        }
    }

    return NewBtn
}

export default Btn

这样做的正确方法是什么?

【问题讨论】:

    标签: javascript reactjs decorator


    【解决方案1】:

    据我所知export 需要一个名称(变量),而不是函数调用。试试这个:

    const ButtonDecoratedMainButton = ButtonDecorator(MainButton);
    const LinkDecoratedMainButton = LinkDecorator(MainButton);
    
    export {
        DecoratedMainButton as MainButton,
        LinkDecoratedMainButton as MainHrefButton,
        BackButton
    }
    

    【讨论】:

      猜你喜欢
      • 2019-04-30
      • 2018-04-07
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-18
      相关资源
      最近更新 更多