将函数作为props传递给功能组件

IT技术 javascript reactjs
2021-03-29 03:36:52

我试图将一个函数作为props传递给一个功能性 React 组件。我不断收到错误logThis is not a function

父组件是一个带有函数的类组件logToConsole我总结了以下代码:

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

ChildComp 是:

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

export default ChildComp
3个回答

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

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

或者您可以从 props

const ChildComp = (props) => (
  <button onClick={() => props.logThis('test string')}>Click Here</button>
)
有人可以告诉如何将这个函数添加到另一个不在 jsx 中的函数中,this.logThis() 给出错误 props.logThis() 也给出错误
2021-06-06 03:36:52

从 props 解构 logThis

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

export default ChildComp

改成:

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

export default ChildComp