“我的反应应用

时间:2018-05-17 05:13:03

标签: javascript reactjs

我将尝试发布这个,而不必为我构建的反应组件共享我的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中函数的默认参数的使用。

谢谢!

2 个答案:

答案 0 :(得分:2)

this.someHelperFunction(paramA="blue", paramB="red")

这有3件事

  1. 将“blue”分配给paramA(在调用上下文中,与函数中的参数名称无关)
  2. 将“red”分配给paramB(在调用上下文中,与函数中的参数名称无关)
  3. 使用参数“blue”和“red”
  4. 调用该函数

    现在,如果您处于严格模式,paramAparamB需要是现有变量才能获得警告/错误 - 再次,paramA和{{1与函数

    中的参数名称完全无关

    你也可以

    paramB

    并且您将面临同样的错误(错误除外,someHelperFunction(paramA="blue", paramB="red") { ... } this.someHelperFunction(someRandomWord="blue", anotherRandomWord="red") someRandomWord未定义

答案 1 :(得分:0)

您可以尝试这样

someHelperFunction(paramA, paramB) { ... }

componentDidMount() {
    this.someHelperFunction("blue", "red")
}