如何使用`require`而不是`include`包含我的自定义组件

问题描述 投票:0回答:1

我使用nwb作为described in this guide构建了一个简单的React组件。

这是一个非常简单的组件,只是一个按钮:

import t from 'prop-types'
import React, {Component} from 'react'

class LoadingButton extends Component {
  static propTypes = {
    disabled: t.bool,
    loading: t.bool,
    type: t.string,
  }
  static defaultProps = {
    disabled: false,
    loading: false,
    type: 'button',
  }
  render() {
    let {children, disabled, loading, type, ...props} = this.props
    if (loading) {
      disabled = true
    }
    return <button disabled={disabled} type={type} {...props}>
      {children}
    </button>
  }
}

export default LoadingButton

在另一个项目中,使用npm link后,我可以执行以下操作导入此Component:

import LoadingButton from 'react-loading-button'

而且有效!

enter image description here

但是我的问题是,我还需要使用require将此组件包括在内(在较旧的代码库中)。我想做这样的事情:

var LoadingButton = require("react-loading-button");

不幸的是,这种方法对我不起作用。它给了我这个错误:

Error: Objects are not valid as a React child (found: [object Module]). If you meant to render a collection of children, use an array instead.

enter image description here

我已经使用nwb构建了组件,其中指出:

默认情况下,nwb将在lib /中为您的项目创建CommonJS构建, 这是通过npm安装时使用的主要方式, 指向lib / index.js的默认package.json主配置。

所以我对require为什么不起作用有些困惑。

有人对这种方法有任何经验吗?

javascript reactjs build components nwb
1个回答
0
投票

我尝试过使用函数/类样式组件,var LoadingButton = require("react-loading-button").default;似乎工作正常,代码库并不完全相同,但值得尝试。

© www.soinside.com 2019 - 2024. All rights reserved.