我将尝试发布此内容,而无需分享我构建的 React 组件的 1500 行代码。这是我的组件的一般结构,与其他组件一样:
import React, { Component } from 'react';
import d3 from "d3";
class presComponent extends Component {
constructor(props) {
super(props);
this.state = { ... }
}
someHelperFunction(paramA="blue", paramB="red") { ... }
componentDidMount() {
this.someHelperFunction(paramA="blue", paramB="red")
}
render() {
...
在构造函数之后,我有许多用于组织代码的函数,这些函数在生命周期方法中调用(大多数情况下是 DidMount 和 DidUpdate)。我的一些辅助函数具有默认参数,在本例中,someHelperFunction 具有参数 paramA 和 paramB,默认值为蓝色和红色。
该组件是一个演示组件,我从一个主要容器组件中调用它。当我这样做时,我收到以下错误:
Line 1735: 'paramA' is not defined no-undef
Line 1735: 'paramB' is not defined no-undef
我的代码中的第1735行是对componentDidMount内部函数的调用,因此以下行:
this.someHelperFunction(paramA="blue", paramB="red")
为什么会这样。尽管在我的示例中我将参数值设置为其默认值,但即使我不使用默认值,我也会收到此错误。感谢这里的任何帮助,感觉我不明白 javascript/react 中函数的默认参数的使用。
谢谢!
最佳答案
this.someHelperFunction(paramA="blue", paramB="red")
这做了三件事
- 将“blue”分配给 paramA(在调用上下文中,与函数中的参数名称无关)
- 将“red”分配给 paramB(在调用上下文中,与函数中的参数名称无关)
- 使用参数“blue”和“red”调用函数
现在,如果您处于严格模式,paramA
和 paramB
需要是现有变量才不会收到警告/错误 - 再次,这个 实例paramA
和 paramB
与函数中的参数名称完全无关
你也可以拥有
someHelperFunction(paramA="blue", paramB="red") { ... }
this.someHelperFunction(someRandomWord="blue", anotherRandomWord="red")
并且您会遇到相同的错误(除了错误会说 someRandomWord
和 anotherRandomWord
未定义
关于javascript - 我的 react 应用程序中的 "' 默认参数 ' is not defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50383750/