簡體   English   中英

目標未定義的React.js,獲取數據課程

[英]Target undefined React.js, fetch data lesson

我在30天的反應之后(第16天): https//www.fullstackreact.com/30-days-of-react/day-16/

將其設置為本地時,每當我對表單或時區進行任何更改時,都會出現此錯誤:

TypeError: Cannot read property 'target' of undefined

TimeForm._changeMsg
C:\Users\user\Desktop\predica-react\src\TimeForm.js:28

  25 |  }
  26 | 
  27 |  _changeMsg(evt) {
> 28 |    const msg =
  29 |      encodeURIComponent(evt.target.value).replace(/%20/, '+');
  30 |    this.setState({msg}, this._handleChange);
  31 |  }

另外在Timeform.js中有錯誤的綁定(拋出錯誤),我將它們設置為

this._handleFormSubmit = this._handleFormSubmit.bind(this);
this._changeMsg = this._changeMsg.bind(this);
this._changeTimezone = this._changeMsg.bind(this);
this._handleChange = this._changeMsg.bind(this);

除此之外,所有內容都與本教程中的內容完全相同。

我應該怎么做才能使其正常工作?

Edit1:這是請求的jsx代碼(Timeform.js):

return (
  <form onSubmit={this._handleFormSubmit}>
    <select
      onChange={this._changeTimezone}
      defaultValue={tz}>
      {timezones.map(t => {
        return (<option key={t} value={t}>{t}</option>)
      })}
    </select>
    <input
      type="text"
      placeholder="A chronic string message (such as 7 hours from now)"
      onChange={this._changeMsg}
    />
    <input
      type="submit"
      value="Update request"
    />
  </form>
)

Edit2:我已經克隆了官方倉庫,它在timezome.js中似乎完全沒有綁定,並且可以正常工作https://github.com/fullstackreact/30-days-of-react/tree/master/day-16

Edit3:綁定在那里,但是從構造函數移到了jsx。

我要做的就是將綁定從構造函數移動到jsx,並關閉大小寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM