【问题标题】:defining a function to pass it as props, but I get a compiling error定义一个函数将其作为道具传递,但我得到一个编译错误
【发布时间】:2021-02-16 18:33:05
【问题描述】:

我有一个反应组件试图将一个函数传递给另一个组件,问题是 我无法定义函数,它会引发编译错误

export default function App() {

createActivity() {      // here I get an error: missing semicolon
    console.log("creating activity");
}

return ( 
    <div className = "App" >
       <Route path="/" component={ Header } />  
       <Route exact path="/" component={ShowSplashWindow} />  
       <Route path="/createactivitiy" render = {() =>
              <CreateActivity createActivity={this.createActivity} />} />
    </div>
    );
}

我错过了什么?

拉斐尔

【问题讨论】:

  • function createActivity() {}
  • ...或createActivity() { -> const createActivity = () =&gt; {。如果你在类中编写函数,你可以按照你的方式来做。
  • 但是当我这样声明它时,我收到其他错误说“'createActivity' 已声明但它的值从未被读取”,但我在 } />
  • 删除this. 部分后,该错误就会消失

标签: javascript reactjs react-router react-props react-component


【解决方案1】:

函数必须声明为

const createActivity = () => {
    console.log("creando la actividad");
}

并且当作为 props 传递时,不应该用 "this" 调用它

<CreateActivity createActivity={createActivity} />}

【讨论】:

    【解决方案2】:

    您将组件声明为函数式,但尝试创建类方法。

    你应该使用类组件:

    export default class App extends React.Component {...
    

    有两种方法:createActivityrender

    或者声明你的函数并赋值给常量

        const createActivity = () => ...      
    

    但在没有this的情况下使用它:

       <CreateActivity createActivity={createActivity} />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 2022-11-01
      • 2019-06-06
      • 2016-03-21
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      相关资源
      最近更新 更多