开发者问题收集

错误:无法在获取方法中读取属性“setState”

2019-07-19
73

我创建了一种方法,用于处理通过 API 存储数据的表单提交。我想在成功存储数据后显示 snackbar。但是这总是显示错误:无法读取属性“setState”。但是错误消息标记在行 fetch(" http://localhost/lumen/udemy-react-api/public/api/departments " 而不是在行 this.setState。请帮我找出问题所在。我在这个问题上卡了 2 个小时。

handleSubmit(event) {
    event.preventDefault();
    fetch("http://localhost/lumen/udemy-react-api/public/api/departments", {
      method: "POST",
      headers: {
        Accept: "application/json",
        "Content-type": "application/json"
      },
      body: JSON.stringify({
        id: null,
        name: event.target.name.value
      })
    })
      .then(response => response.json())
      .then(result =>
        this.setState({ snackbaropen: true, snackbarmsg: result.message })
      )
  }
1个回答

您遇到了调用上下文问题

尝试将 handleSubmit() 方法绑定到构造函数中的 this

  class MYclass {

    constructor(){
       this.handleSubmit = this.handleSubmit.bind(this)
    }

    handleSubmit(event) {
       event.preventDefault();
       .....

  }
charlietfl
2019-07-19