定义一个函数以将其作为 props 传递,但出现编译错误

defining a function to pass it as props, but I get a compiling error

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

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>
    );
}

我错过了什么?

拉斐尔

您将组件声明为功能组件,但试图创建一个 class 方法。

您应该使用 class 组件:

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

有 2 种方法:createActivityrender

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

    const createActivity = () => ...      

但不使用 this:

   <CreateActivity createActivity={createActivity} />

函数必须声明为

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

并且当作为 props 传递时,不应使用“this”调用它

<CreateActivity createActivity={createActivity} />}