我将尝试发布此内容,而不必为我构建的 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)中调用。我的一些帮助程序函数具有默认参数,在这种情况下,某些帮助程序函数具有参数参数 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")
这做 3 件事
- 将"blue"分配给paramA(在调用上下文中,与函数中的参数名称无关)
- 将"red"赋值给参数B(在调用上下文中,与函数中的参数名称无关)
- 使用参数"蓝色"和"红色"调用函数
现在,如果您处于严格模式,paramA
和paramB
需要是现有变量才能不收到警告/错误 - 同样,这个paramA
和paramB
实例与函数中的参数名称完全无关
你也可以拥有
someHelperFunction(paramA="blue", paramB="red") { ... }
this.someHelperFunction(someRandomWord="blue", anotherRandomWord="red")
并且您将面临相同的错误(除了错误会说未定义someRandomWord
和anotherRandomWord
你可以这样尝试
someHelperFunction(paramA, paramB) { ... }
componentDidMount() {
this.someHelperFunction("blue", "red")
}