小编sdg*_*uck的帖子

在ES6类中声明静态常量?

我想在a中实现常量class,因为在代码中找到它们是有意义的.

到目前为止,我一直在使用静态方法实现以下解决方法:

class MyClass {
    static constant1() { return 33; }
    static constant2() { return 2; }
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我知道有可能摆弄原型,但许多人建议不要这样做.

有没有更好的方法在ES6类中实现常量?

javascript class constants ecmascript-6

272
推荐指数
7
解决办法
21万
查看次数

如何在ecmascript 6中导入json文件?

如何在Ecmascript 6中访问json文件?以下不起作用:

import config from '../config.json'

如果我尝试导入JavaScript文件,这可以正常工作.

import json ecmascript-6

128
推荐指数
11
解决办法
12万
查看次数

使用动态名称在ES6中创建类的实例?

我希望能够通过将字符串变量传递给函数来实例化特定的ES6类.根据变量的值,将创建一个不同的类.

示例 - 我有2个类ClassOne,ClassTwo.我希望能够将变量传递给函数并返回一个新类.类的名称将与变量相关 - 例如.传球'Two'将创造ClassTwo.

希望只用一个switch条款是这样的:

function createRelevantClass( desiredSubclassName )
{
  let args = [],
      newClass;

  switch( desiredSubclassName )
  {
    case 'One' :
      newClass = new ClassOne(args);
      break;
    case 'Two' :
      newClass = new ClassTwo(args);
      break;
  }

  return newClass;
}
Run Code Online (Sandbox Code Playgroud)

相反,我想以某种方式能够使用变量名创建构造函数调用.那可能吗?

function createRelevantClass( desiredSubclassName )
{
  // desiredSubclassName would be string 'One' or 'Two'

  // how to use the 'new' operator or Reflect here to create the …
Run Code Online (Sandbox Code Playgroud)

javascript class dynamic ecmascript-6

39
推荐指数
2
解决办法
4万
查看次数

React 钩子相当于 componentDidCatch?

我有一个简单的组件,它在我的 React 应用程序中充当错误边界,并将任何错误传递给日志记录服务。

它看起来像这样:

export class CatchError extends React.PureComponent {
  state = {
    hasError: false
  }

  componentDidCatch(error, info) {
    this.props.log({ error, info })
    this.setState({ hasError: true })
  }

  render() {
    const child = typeof this.props.children === "function"
      ? this.props.children({ error: hasError })
      : children

    return React.cloneElement(child, { error: this.state.hasError })
  }
}
Run Code Online (Sandbox Code Playgroud)

是否有一个 React 钩子相当于componentDidCatch这样我可以使这个组件成为一个函数而不是一个类?

所以它可能看起来像这样:

export function CatchError({ children, log }) {
  const [hasError, setHasError] = useState(false)
  const caught = useDidCatch()

  useEffect(() => {
    const [error, info] …
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks

34
推荐指数
2
解决办法
3万
查看次数

如何在Jest中重置或清除间谍?

我有一个间谍,它在一个套件的多个测试中的多个断言中使用。

如何清除或重置间谍,以便在每次测试中都认为间谍未拦截间谍方法?

例如,如何使断言'does not run method'为真?

const methods = {
  run: () => {}
}

const spy = jest.spyOn(methods, 'run')

describe('spy', () => {
  it('runs method', () => {
    methods.run()
    expect(spy).toHaveBeenCalled() //=> true
  })

  it('does not run method', () => {
    // how to make this true?
    expect(spy).not.toHaveBeenCalled() //=> false
  })
})
Run Code Online (Sandbox Code Playgroud)

javascript testing jestjs

21
推荐指数
4
解决办法
1万
查看次数

在 Chrome 开发人员工具中重置网络选项卡默认表格排序顺序?

在 Chrome 开发人员工具的“网络”选项卡中,单击列标题并按该列对表格进行排序后,如何“取消排序”表格并恢复 Chrome 的默认网络表格顺序?

google-chrome google-chrome-devtools

20
推荐指数
2
解决办法
2811
查看次数

如何阻止 GoLand 隐藏/折叠 return 语句?

自从最近的 GoLand 更新以来,我看到所有 return 语句都折叠起来,如下图所示。

GoLand 折叠/隐藏返回语句

如何让 GoLand 显示所有未折叠或隐藏的 return 语句,就像它们在实际代码中一样?

goland

12
推荐指数
1
解决办法
1148
查看次数

如何监视默认导出的函数

sinon.spy有2个参数,对象和函数名.

我有一个如下所列的模块:

module.exports = function xyz() { }

我该如何定义间谍xyz?我没有要使用的对象名称.

思考?

javascript node.js sinon

10
推荐指数
1
解决办法
8915
查看次数

在visual studio代码中找不到名称'Promise'

我在Visual Studio代码中使用Angular2.在visual studio代码中它显示错误,如下所示:

在此输入图像描述

如图所示,Promise用红色下划线突出显示.另外我有另一个问题是如果我们定义内联函数,那么Visual Studio代码也会在函数名称下面显示红色下划线.与response上图中的红色下划线相似.

但是我的代码在浏览器中工作正常.但是在VS Code中它显示了红色下划线.

我不想在我的代码中添加任何红色下划线.可能吗 ?任何人都可以帮我解决这个问题吗?

ecmascript-6 visual-studio-code angular

9
推荐指数
1
解决办法
2027
查看次数

如何全局公开es6模块

我需要编写一个可在全局窗口上使用的模块.
我正在使用es6来创建模块,我定义的每个类都有自己的文件.
我正在使用webpack来babelify并捆绑这些类.
我的模块的入口点也是包含要公开的全局的文件.

我已经尝试过各种方法来实现这个可能性,包括:

  • 暴露装载机
  • 进口装载机
  • expoert装载机
  • 输出:库
  • 黑魔法 :(

我试过的代码示例:

我想得到:window.MyMod

// mymod.js
export class MyMod {
    constructor(aaa) {
        this.aaa = aaa;
    }
    toString() {
        return this.aaa;
    }
}
Run Code Online (Sandbox Code Playgroud)

// webpack.config
var entries = [
    './src/mymod.js'
];
module.exports = {
    ...,
    module: {
      loaders: [
            {
                test: require.resolve('./src/mymod.js'),
                loader: 'expose?MyMod'
            },
            {
                test: /\.js$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
                query: {
                    presets: ['es2015']
                }
            }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这只会让我在包含MyMod作为构造函数的窗口上找到一个MyMod对象.

任何帮助将不胜感激.

javascript module global-variables ecmascript-6 webpack

9
推荐指数
2
解决办法
9163
查看次数