TypeError:_this2.props.someFunciton不是函数 - 反应

问题描述 投票:0回答:2

虽然有些帖子具有相似的标题,但它们都无关紧要或者没有回答发布的问题。

我在另一个页面中有一个像这样调用的组件:

<SomeComponent  aParticularProp={(arg) => {this.someFunction(arg)}} />

这是SomeComponent的简化版本:

 class SomeComponent extends React.Component{

constructor(props){
    super(props);
    this.state = {someState: "test"};
}

something(){
  return (
      <SpecialButton 
          onClick={() => {this.props.someFunction(this.state.someState)}}
      />
  )

}

render () {
   return (
         {this.something()}
   ); 
}

}

为什么我得到“TypeError:_this2.props.someFunciton不是函数”?

reactjs typeerror react-props
2个回答
0
投票

你传递aParticularProp作为prop,而不是SomeFunction ......所以,在SomeComponent中你可以引用this.props.aParticularProp。

并且父组件中的this.someFunction应该在父组件中定义。


0
投票

如果您尝试将函数从父组件传递到子组件并维护原始上下文,则值得将其绑定到该组件:

<SomeComponent someFunction={this.someFunction.bind(this)} />

或者通过声明你的功能:someFunction = args => {}

更多的是你为什么this2.props.someFunction is not a function,通过将你的函数传递给someFunction={(arg) => {this.someFunction(arg)}},你实际上并没有将函数传递给子组件,而是调用函数并返回结果。

© www.soinside.com 2019 - 2024. All rights reserved.