如何获得有关反应中下拉值变化的数据?

时间:2018-02-28 17:33:15

标签: javascript reactjs react-router

我正在尝试获取dropdown更改事件的数据。首先我在加载时加载list of banks或加载了组件。现在我想在用户选择任何state时获取bank列表。我收到此错误

Uncaught (in promise) TypeError: _this3.setState is not a function
    at eval (rro780nklq.codesandbox.io/src/form_component.js:71)
    at <anonymous>

我试过这个

render() {
    return (
      <div>
        <DropDown
          data={this.state.data}
          defaultOption="select Bank"
          callbackFn={this.callStateService}
        />
        <DropDown data={this.state.stateData} defaultOption="select State" />
        <DropDown data={this.state.district} defaultOption="select District" />
      </div>
    );
  }
}

onchange事件

onChangeDropdown = e => {
    console.log(e.target.value);
    this.props.callbackFn(e.target.value);
  };

这是我的代码 https://codesandbox.io/s/rro780nklq

2 个答案:

答案 0 :(得分:0)

您可以将callStateService定义为箭头功能,以保留this

callStateService = bankname => {
...

答案 1 :(得分:0)

您可以使用箭头功能删除与setState相关的错误,但除此之外还有更多错误。你需要检查

callStateService = (bankname) => {
    axios
      .get(
        "your url"
          bankname
      )
      .then(response => {
        console.log(response.data.data);
        const d = response.data.data;
        this.setState({
          stateData: d
        });
      });
  }