将功能作为道具传递给功能组件

Pan*_*ank 2 javascript reactjs

尝试将功能作为道具传递给功能性React组件并保持错误 logThis is not a function

父组件是具有功能的类组件logToConsole。我总结了下面的代码。

logToConsole = (value) => {
  console.log(value)
}
render(){
return(
<ChildComp logThis={this.logToConsole} />
)
}

Run Code Online (Sandbox Code Playgroud)

ChildComp是:

const ChildComp = (logThis) => (
  <button onClick={()=>logThis('test string')}>Click Here</button>
)

export default ChildComp
Run Code Online (Sandbox Code Playgroud)

Mah*_*Ali 7

第一个参数logThis将是props对象本身。您需要解构logThis对象。

const ChildComp = ({ logThis }) => (
  <button onClick={() => logThis('test string')}>Click Here</button>
)
Run Code Online (Sandbox Code Playgroud)

或者您可以从 props

const ChildComp = (props) => (
  <button onClick={() => props.logThis('test string')}>Click Here</button>
)
Run Code Online (Sandbox Code Playgroud)