React JS _TypeError:_This.dropdowncounter不是函数

时间:2019-01-17 20:01:07

标签: javascript reactjs

如标题中所述,我遇到此错误,无法弄清原因。 我有一个名为SubDropdown的子组件,如下所示:

class SubDropdown extends Component{

  constructor(props) {
      super(props);
      this.dropdownCounter = this.dropdownCounter.bind(this);
  }

  dropdownCounter() {
      let dataofDropdowns = [];
      let elements = [];
      return elements;
    }

  render() {
    return(
      <div>
      { this.dropdownCounter() }
      </div>
    )
  }

}
export default SubDropdown;

我已将其简化为查找错误。我将其绑定到this.dropdownCounter,如上所示。

然后我将网页加载到父组件所在的页面。我收到此错误:Uncaught (in promise) TypeError: _this.dropdownCounter is not a function

知道我在做什么错吗?

编辑:共享父组件:

    render() {
      return (
        <div className="add-to-cart">
          <div className="row">
            <div className="col-sm-6">
              <CarouselPhotos />
            </div>
            <div className="col-sm-6">
            <Form>
              <div>
                <Dropdown
                  title="Size"
                  arrayId="selectProduct"
                  list={this.state.selectProduct}
                  resetThenSet={this.resetThenSet}
                />
              </div>
              <div>
              {this.state.isLoading ? (
                <Loader
                type="ThreeDots"
                color="#00BFFF"
                height="100"
                width="100"
                />
              ) : (
                <SubDropdown productInfo={this.state}/>
              )}
              </div>
            </Form>
            </div>
        </div>
        </div>
      ) }
  }

编辑:在第一个渲染上它可以工作,但是我有一个与之关联的下拉列表,因此当它尝试调用{this.dropdownCounter()}时,是我收到错误消息。

添加console.log(this.dropdownCounter);在dropdownCounter()内部可以得到以下信息:

dropdownCounter() {
      var result = Object.entries(this.props.productInfo);
      var dataofDropdowns = [];
      var elements = [];

      console.log(this.dropdownCounter);

选择错误后的第二次运行,即出现错误:

Uncaught TypeError: _this.dropdownCounter is not a function
The above error occurred in the <App> component:
    in App

0 个答案:

没有答案