gpt4 book ai didi

javascript - 导入导出默认类的节点模块会导致 'module' 而不是 'constructor'

转载 作者:太空宇宙 更新时间:2023-11-04 15:37:08 25 4
gpt4 key购买 nike

我正在尝试导入节点模块React-Signature-Pad。 index.js 文件如下所示:

import PropTypes from 'prop-types'
import React, { Component } from 'react'
import trimCanvas from 'trim-canvas'

import Bezier from './bezier.js'
import Point from './point.js'

export default class SignatureCanvas extends Component {
static propTypes = {
velocityFilterWeight: PropTypes.number,
minWidth: PropTypes.number,
maxWidth: PropTypes.number,
dotSize: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
penColor: PropTypes.string,
onEnd: PropTypes.func,
onBegin: PropTypes.func,
canvasProps: PropTypes.object
}

static defaultProps = {
velocityFilterWeight: 0.7,
minWidth: 0.5,
maxWidth: 2.5,
dotSize: () => {
return (this.props.minWidth + this.props.maxWidth) / 2
},
penColor: 'black',
backgroundColor: 'rgba(0,0,0,0)',
onEnd: () => {},
onBegin: () => {}
}

componentDidMount () {
this._ctx = this._canvas.getContext("2d");
//.....

我尝试像这样使用它:import * as SignatureCanvas from 'react-signature-canvas'

然而,SignatureCanvas 会评估为具有单个属性“default”的对象。因此,当我使用时,我收到错误,因为 SignatureCanvas 实际上不是构造函数。

我能够让它工作的唯一方法就是像这样导入它:

declare var require: any;
var SignatureCanvas = require('react-signature-canvas').default;

这似乎不对。哪种导入方式正确?

如果重要的话,我正在使用 WebPack2 来捆绑网站。

最佳答案

导入此模块并使其作为类工作的方法是:

import SignatureCanvas from 'react-signature-canvas';

var x = new SignatureCanvas(...);

import * as xxx from 'xxx' 语法的工作方式与您发现的完全一样:模块 xxx 的默认导出工件设置为 xxx.default。在你的情况下,你必须这样做:

import * as SignatureCanvas from 'react-signature-canvas';

var x = new SignatureCanvas.default(...); // now x is the same as above

关于javascript - 导入导出默认类的节点模块会导致 'module' 而不是 'constructor',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44247758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com