通过React Router传递函数

ocr*_*ram 10 reactjs react-router

我想通过React Router将函数传递给子组件.我尝试了以下但它似乎不起作用.

class App extends Component {
  constructor(props) {
      super(props)
  }

  render() {
    return (
      <div className="App">
          <div className="content">
          <div className="centered-wrapper">
            <Switch>
              <Route exact path="/" component={Welcome} />
              <Route path="/life" render={props => <Life sayHello = {this.sayHello()} />} />
            </Switch>
          </div>                
      </div>
    );
  }
}

export default App;
Run Code Online (Sandbox Code Playgroud)

我想sayHello()在Life组件中调用如下:

<div className="hello">{ this.props.sayHello() } I'm <Link to="/life">Marco</Link>! Welcome to my hood.</div>
Run Code Online (Sandbox Code Playgroud)

okl*_*las 13

更换:

<Route path="/life" render={props => <Life sayHello = {this.sayHello()} />} />
Run Code Online (Sandbox Code Playgroud)

同

<Route path="/life" render={props => <Life sayHello = {this.sayHello} />} />
Run Code Online (Sandbox Code Playgroud)

错误道具接收sayHello()函数调用的结果而不是函数本身.